Bash 如何从管道中运行命令
我想从管道上运行命令,如“history”或“!23”Bash 如何从管道中运行命令,bash,shell,Bash,Shell,我想从管道上运行命令,如“history”或“!23” 我怎样才能做到这一点 为什么下面的命令不起作用 echo“history”| xargs eval$1 首先回答(2): history和eval都是bash内置的。因此,xargs无法运行其中任何一个 xargs不使用$1参数manxargs了解正确的语法 对于(1),执行您正在尝试的操作并没有多大意义,因为shell历史不太可能在调用之间同步,但您可以尝试以下操作: { echo 'history'; echo '!23'; } |
echo“history”| xargs eval$1
首先回答(2):
和history
都是bash内置的。因此,eval
无法运行其中任何一个xargs
不使用xargs
参数$1
了解正确的语法manxargs
{ echo 'history'; echo '!23'; } | bash -i
或:
请注意,管道在子壳内部运行。环境变化不会被保留:
x=1; echo "x=2" | while read -r cmd; do eval "$cmd"; done; echo "$x"
首先回答(2):
和history
都是bash内置的。因此,eval
无法运行其中任何一个xargs
不使用xargs
参数$1
了解正确的语法manxargs
{ echo 'history'; echo '!23'; } | bash -i
或:
请注意,管道在子壳内部运行。环境变化不会被保留:
x=1; echo "x=2" | while read -r cmd; do eval "$cmd"; done; echo "$x"
你可以这样试试
首先将历史记录命令重定向到文件(剪切行号)
现在创建这个脚本hcmd.sh(参考此)
你可以这样试试
首先将历史记录命令重定向到文件(剪切行号)
现在创建这个脚本hcmd.sh(参考此)
谢谢你,我感谢你花时间传播你的一些知识。我会对此表示支持,但我没有足够的“声誉”。谢谢你,我感谢你抽出时间传播你的一些知识。我会支持这一点,但我没有足够的“声誉”。
#!/bin/bash
while IFS='' read -r line || [[ -n "$line" ]]; do
echo "Text read from file: $line"
$line
done < "cmd.txt"
./hcmd.sh