我运行以下脚本:
VAR="Test"
sh -c 'echo "Hello $VAR"'
Run Code Online (Sandbox Code Playgroud)
但我得到:
# ./test.sh
Hello
Run Code Online (Sandbox Code Playgroud)
如何将VAR
我的脚本变量发送到使用sh -c '...'
.
我想通过抑制通常成功的辅助命令的输出来简化脚本的输出。
但是,-q
当它们偶尔失败时,在它们上使用会隐藏输出,所以我无法理解错误。此外,这些命令将其输出记录在stderr
.
有没有办法在命令成功时才抑制它的输出?
例如(但不限于)这样的事情:
mycommand | fingerscrossed
Run Code Online (Sandbox Code Playgroud)
如果一切顺利,fingerscrossed
捕获输出并丢弃它。否则它会将其回显到标准或错误输出(无论如何)。
我已经使用uniq -c
和sort
广泛的其他机器,它总是工作非常出色。
现在,在我的新 Ubuntu (13.04) 机器上,我得到了一个奇怪的排序:
% cat queries.log | grep INSERT | sort | uniq -c | sort
1 INSERT INTO A (id, organization_id) VALUES (?, ?)
2 INSERT INTO B (id, resource_id) VALUES (?, ?)
2 INSERT INTO C (id) VALUES (?)
2 INSERT INTO D (email, password) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)
3 INSERT INTO E (user_id, type) VALUES (?, ?)
40275 INSERT INTO F (id, resource_id) VALUES …
Run Code Online (Sandbox Code Playgroud)