subshell
如命令:
=>s | cat -n > out.txt
可以写为:
cmd_output=$(ls | cat -n)
echo $cmd_output
格式是:cmd_output=$(commands)
子shell本身就是一个独立的进程,可以用( )操作符来定义一个子shell;
又如:
pwd;
(cd /bin; ls);
pwd; #当前的目录是不会改的!
命令在子shell中运行时,不会对当前的shell产生任何的影响,所有的改变仅限于子shell内;
上述说的将
=>s | cat -n > out.txt
写为:
cmd_output=$(ls | cat -n)
echo $cmd_output
就会导致输出的文本没有空格和换行符,而要保持空格和换行符很简单,在把子shell放到双引号""里面就可以!
即:
cmd_output=$(ls | cat -n)
echo “$cmd_output”