我该如何将
pwd
和ls
的输出连接起来并添加到一个名为f1的文件中?以下方法不可行:pwd, ls > f1
使用复合命令:
{ pwd; ls; } > f1
(pwd;ls)
,但不能写{pwd;ls;}
或{pwd;ls}
:需要前导空格和尾随分号 - { pwd;ls;}
。 - Vytenis Bivainisprintf '%s\n' "$PWD" * > f1
。 - gniourf_gniourf(pwd;ls) > f1
pwd >> f1
ls >> f1
You can use subshell with parenthesis:
( pwd; ls; ) > f1
Or subcommand:
{ pwd; ls; } > f1
使用子Shell时,父Shell无法访问子进程的环境变量。因为创建了一个新的孤立进程,变量不会被保留。
而使用子命令初始化变量后,变量将被保留并可用于父Shell。
两者都有父级环境。
参考:
pwd > f1; ls >> f1
,否则如果已经存在文件,则会将其附加到文件中,而原始命令会覆盖任何原始文件。此外,我的命令的重点是省略分号和空格-而您重新引入了它们。而chepner先生的解决方案不是子命令,而是一个复合命令-即由多个部分组成的命令。 - Mark Setchell