我在寫一個簡單的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管理-p密碼調用jboss.system:MainDeployer停止$ 'jboss.web.deployment:戰爭= worker.war,ID = 1518231766 \ R'
我在上面看到的命令,該應用程序是未來的價值:
$'jboss.web.deployment:war=worker.war,id=1518231766\r'
但如果我這樣做回聲$應用程序,然後我沒有看到引號和\ r追加,如何確保應用程序不帶引號發送作爲另一個命令的輸入?我不知道問題出在哪裏 - 當我在shell外執行命令時,我看不到這是輸出。
感謝您的任何幫助。
它通過這樣做: app ='echo $ app | sed's/\ r // g'' – Anna 2010-08-25 12:29:39
很高興你有工作.... – ennuikiller 2010-08-25 13:00:44
'grep模式| sed's/from/to/g''通常是不需要的,因爲sed有一個內置的grep:'sed -ne'/ pattern/s/from/to/gp''通常會保存一個分支。而且sed甚至可以做幾個替換節省另一個分支...... – Jens 2012-05-16 20:15:23