Articles of bash

合成一个bashfunction应用程序运算符

这虽然有点天壤之别,但是我已经学会了不要对任何东西的能力做出假设,因为我经常被隐藏在UNIX / Linux工具中的隐藏function惊呆了。 我经常发现自己正在运行命令,我需要在系统上find一个文件,然后一旦我把眼光放在了理智的位置上,我就需要做一些事情。 以此工作stream程为例: $ which foo.sh /path/to/something/foo.sh $ vim `which foo.sh` 第二个命令需要我整整1-2秒才能input。 这是疯狂的。 我经常这样做,开始觉得自己应该能够分解出样板。 我所喜欢的是幻想的贝壳魔法,可以让我做到以下几点: $ which foo.sh /path/to/something/foo.sh $ which foo.sh |! vim 这第二个例子是远远优于IMO。 我觉得在向上箭头后input“|!vim”要比寻找这一行的开头容易得多,键入vim反向,然后寻找行结束并input最后的反引号。 想象一下,pipe爆炸操作符做了类似于“| xargs,vim”的操作,但是保留了vim的terminal,而且键入的东西更短。 pipe-bang当然是bash中的一个语法错误,它不能被别名,所以我想做的事似乎是不可能的。 还是呢? 我怀疑这是TMTOWTDI的情况,但是我有一个心理障碍。 它不一定是从字面上来看,但是接近的是目标。

grep / list bashrecursion

parts = grep "/root/backups/*" for part in $parts do echo $part rm -rf $part #delete done 我基本上需要遍历一个文件夹,并使用Bash脚本返回文件夹中的每个项目。 无法通过grep工作,虽然可能是一个更简单的方法。 第一行是纯粹的伪线索代码。

类似于'&cshell'中的bash

我在一个命令的末尾使用了&cshell中的命令,以便从terminal执行一个独立的进程: kate filename.txt& 我应该怎么做bash?

如何防止PHP执行shell命令?

如何防止apache执行bash脚本? 任何PHP脚本不能在bash中执行命令(例如,将添加链接到我的PHP和HTML文件的命令)。 有没有办法做到这一点?? 编辑:我有我的脑海里任何bash命令不仅.sh文件

是否有可能(以及如何)有一个“虚拟”的软链接,其价值取决于shell环境?

这个问题可能会被重新修改。 我想要的是一定的path,比如/workingsrc来同时引用每个shell(bash)实例的不同实际path。 因此,在bash的实例中,我可以执行ls /workingsrc并获取/foo/bar的内容,并在另一个同时在同一台机器上运行的实例中执行ls /workingsrc并获取/foo/zoo的内容。 你知道有没有办法做到这一点? 我正在使用Linux和bash。

Bash getops:允许,但不要求arg

我正在写一个bash脚本,用像这样的getoptsparsing选项: #!/bin/bash while getopts ab: ; do case $opt in a) AOPT=1 ;; b) BOPT=$OPTARG ;; esac done 我想有“-b”选项OPTIONALLY采取一个参数,但事实是,如果没有parameter passinggetopts抱怨。 我怎样才能做到这一点? 谢谢!

Bash:删除所有,但最新的n个前缀为x的文件

我有一个备份目录,如下所示: -rw-r–r– 1 ftpuser ftponly 5610595 May 27 00:01 alpha-114.tar.asc -rw-r–r– 1 ftpuser ftponly 50559368 May 27 00:04 beta-211.tar.asc -rw-r–r– 1 ftpuser ftponly 61320807 May 27 00:06 gamma-387.tar.asc -rw-r–r– 1 ftpuser ftponly 43125044 May 27 00:07 epsilon-241.tar.asc -rw-r–r– 1 ftpuser ftponly 1107110560 Apr 26 04:33 zeta-7728.tar.asc -rw-r–r– 1 ftpuser ftponly 1107136555 Apr 27 00:29 zeta-7729.tar.asc […]

Bash命令不能在SFTP脚本之后工作

我有以下bash脚本 SFTP工作正常,但回声“备份完成”dosnt工作 #!/bin/sh sftp -b /dev/stdin server <<EOF cd /shares/backup/webserver/ put $bu_PATH$BACKUP_FILE quit EOF echo "Backup done" 任何人都可以帮忙吗?

发现数据集之间的差异

有两个名字列表的文件,每行一个名字。 我需要find第二个列表中的名字不在第一个。 有没有一些聪明的方法来使用shell而不是“真正的”编程语言? PS我用Ruby做了比较,但仍然好奇。

如何在shell中的string内inputstar *

我怎样才能包括*在一个string? 这是我的代码: #!/bin/bash # This is a simple calculator using select statement echo -n 'Insert 1st operand: ' read first echo -n 'Insert 2nd operand: ' read second echo 'Select an operator:' operators="+ – * /" select op in $operators do let "result=${first}${op}${second}" break done echo -e "Result = $result" 当我运行这个代码时, *会将当前目录中的所有文件列为select选项。 我试图用\*来逃避它,但它不起作用。