linux shell脚本攻略04-将命令序列的输出读入变量,管道

ls | cat -n > out.txt

①子shell的方式

output=$(ls |cat -n)

②反引用

output=`ls | cat -n`

第一种方式是子shell的这种方式,利用子shell生成一个独立的进程,可以使用()操作符来定义一个子shell;注意:命令在子shell中执行不会对当前shell有任何影响,所有的改变仅限于子shell

pwd;
(cd /bin;ls)
pwd;

由于cd是在子shell中运行,不影响父shell,两次pwd结果一致

在使用子shell或者反引用的方式时,可以将它放入一个双引号中,以保留空格和换行符\n

运行命令直至执行成功

while true
do	
$@ && return
done

一种更快的做法

while :
do
$@ && return
done

true是作为/bin下的一个二进制文件来实现的,所以第一种写法每次循环会fork一个紫禁城,第二种中的:符号是shell内建命令,他总是会返回0的退出码,效率更好

你可能感兴趣的:(linux)