Linux Shell编程(21)——复杂命令
更高级的用户命令
find
-exec COMMAND \;
在每一个find 匹配到的文件执行 COMMAND 命令. 命令序列以 ; 结束( ";" 是 转义符 以保证 shell 传递到find命令中的字符不会被解释为其他的特殊字符).
xargs
这是给命令传递参数的一个过滤器, 也是组合多个命令的一个工具.它把一个数据流分割为一些足够小的块, 以方便过滤器和命令进行处理. 由此这个命令也是后置引用的一个强有力的替换. 在一般使用过多参数的命令替换失败的时候,用xargs 来替换它一般都能成功. [1] 通常情况下, xargs 从管道或者stdin中读取数据, 但是它也能够从文件的输出中读取数据.
xargs的默认命令是 echo. 这意味着通过管道传递给xargs的输入将会包含换行和空白, 不过通过xargs的处理, 换行和空白将被空格取代.
expr
通用求值表达式: 通过给定的操作(参数必须以空格分开)连接参数,并对参数求值.可以使算术操作, 比较操作, 字符串操作或者是逻辑操作.
expr 3 + 5
返回 8
expr 5 % 3
返回 2
expr 1 / 0
返回错误消息, expr: division by zero
不允许非法的算术操作.
expr 5 \* 3
返回 15
在算术表达式expr中使用乘法操作时, 乘法符号必须被转义.
y=`expr $y + 1`
增加变量的值, 与 let y=y+1 和 y=$(($y+1)) 的效果相同. 这是使用算术表达式的一个例子.
z=`expr substr $string $position $length`
在位置$position上提取$length长度的子串.
find
-exec COMMAND \;
在每一个find 匹配到的文件执行 COMMAND 命令. 命令序列以 ; 结束( ";" 是 转义符 以保证 shell 传递到find命令中的字符不会被解释为其他的特殊字符).
xargs
这是给命令传递参数的一个过滤器, 也是组合多个命令的一个工具.它把一个数据流分割为一些足够小的块, 以方便过滤器和命令进行处理. 由此这个命令也是后置引用的一个强有力的替换. 在一般使用过多参数的命令替换失败的时候,用xargs 来替换它一般都能成功. [1] 通常情况下, xargs 从管道或者stdin中读取数据, 但是它也能够从文件的输出中读取数据.
xargs的默认命令是 echo. 这意味着通过管道传递给xargs的输入将会包含换行和空白, 不过通过xargs的处理, 换行和空白将被空格取代.
expr
通用求值表达式: 通过给定的操作(参数必须以空格分开)连接参数,并对参数求值.可以使算术操作, 比较操作, 字符串操作或者是逻辑操作.
expr 3 + 5
返回 8
expr 5 % 3
返回 2
expr 1 / 0
返回错误消息, expr: division by zero
不允许非法的算术操作.
expr 5 \* 3
返回 15
在算术表达式expr中使用乘法操作时, 乘法符号必须被转义.
y=`expr $y + 1`
增加变量的值, 与 let y=y+1 和 y=$(($y+1)) 的效果相同. 这是使用算术表达式的一个例子.
z=`expr substr $string $position $length`
在位置$position上提取$length长度的子串.