使用shell脚本命令输出

时间:2010-08-25 11:15:45

标签: shell

我正在编写一个简单的shell脚本,它从一个命令中获取输出并在另一个命令中使用它。

 app=$(./twiddle.sh  -u $1 -p $2 query jboss.web.deployment:* | grep $3)
 doop=$(./twiddle.sh -u $1 -p $2 invoke jboss.system:MainDeployer $4 $app)

++ ./twiddle.sh -u admin -p password invoke jboss.system:MainDeployer stop $'jboss.web.deployment:war = worker.war,id = 1518231766 \ r'

我在上面的命令中看到应用程序很有价值:

$'jboss.web.deployment:war=worker.war,id=1518231766\r'

但是如果我回复$ app然后我没有看到引号和\ r附加,我如何确保应用程序发送时没有引号作为另一个命令的输入?我不确定问题出在哪里 - 当我在shell之外执行命令时,我无法将其视为输出。

感谢您的帮助。

2 个答案:

答案 0 :(得分:0)

doop=$(./twiddle.sh -u $1 -p $2 invoke jboss.system:MainDeployer $4 "$app")

如果您不希望shell解释内容,则应使用带引号的echo。如果您不希望解释'之类的字符,请使用printf:printf '%s' "$app"

答案 1 :(得分:0)

sed将很好地为此工作:

sh  -u $1 -p $2 query jboss.web.deployment:* | grep $3 | sed 's/\'//g' | sed 's/\r//g'