bgu*_*uiz 3 unix bash command-line pipe
我想编写一个脚本来重复一个通常包含管道的命令行
./myscript.sh ls -lart |grep ^d
Run Code Online (Sandbox Code Playgroud)
而在myscript.sh
我做了一堆东西,然后想执行ls -lart |grep ^d
和管道从输出到别的东西。
(如果这真的很简单并且有 1 线解决方案,请提前抱歉)。
到目前为止我已经尝试过
$@ | someothercommand
Run Code Online (Sandbox Code Playgroud)
和
$* | someothercommand
Run Code Online (Sandbox Code Playgroud)
但无济于事...
shell 解析命令行的方式意味着 shell 脚本的输入将在它到达管道时停止。您可能需要做的是将您的命令行放在引号中,因此:
./myscript.sh "ls -lart |grep ^d"
Run Code Online (Sandbox Code Playgroud)
然后在您的脚本中使用eval
命令来执行它,如下所示:
eval "$@" | someothercommand
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
1076 次 |
最近记录: |