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的退出码,效率更好