我正在尝试此命令
for x in qstat -u '*' | grep Eqw | awk {'print $1'}; do qmod -cj $x; done
最终出现此错误:
-bash: syntax error near unexpected token `|'
我尝试用各种引号和括号将我的QSTAT命令包装为无济于事,我在做什么错?
,因为您似乎想在结果上循环,因此将其更改为:
for x in `qstat -u '*' | grep Eqw | awk {'print $1'}`; do qmod -cj $x; done
优化版本将是:
for x in $(qstat -u '*' | awk '/Eqw/{print $1}'); do qmod -cj "$x"; done
- 在旧式命令替换中使用了回声(`)。建议使用foo = $(命令)语法。$()内部的后斜线处理并不令人惊讶,$()更容易嵌套。请参阅http://mywiki.wooledge.org/bashfaq/082
-
awk
可以击中自己
改用此SRIPT:
for x in $(qstat -u * | awk '/Eqw/ {print $1}')
do
qmod -cj $x
done
应该是:
for x in $(qstat -u '*' | grep Eqw | awk '{print $1}'); do qmod -cj $x; done