[英]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.