[英]bash: pipe-character in variable for command-substitution
可以请有人解释一下,为什么这不起作用?
#!/bin/bash
cmd="ps aux | grep -v grep"
cnt=$($cmd)
我从ps得到一个错误。
error: garbage option
Usage:
ps [options]
.....
“ps aux”只能正常 - 但不能使用任何其他管道命令。
谢谢!
使用函数存储管道命令更好更安全:
unset cmd cnt
cmd() {
ps aux | grep -v grep
}
并在命令替换中使用它:
cnt="$(cmd)"
要执行变量$cmd
的内容,您必须使用eval
:
cnt=$(eval $cmd)
请使用此命令: -
cmd = ps aux | grep -v grep
ps aux | grep -v grep
当我们想要使用其他命令的o / p时,我们需要使用actute(`)而不是双引号(“)
谢谢
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.