有人可以幫助解釋如下:的Bash腳本 - shell命令輸出重定向
如果鍵入:
a=`ls -l`
然後ls命令的輸出保存在變量a
但如果我嘗試:
a=`sh ./somefile`
結果輸出到shell(stdout
)而不是變量a
我期望的是shell試圖執行腳本'somefile
'的結果操作存儲在變量中。
請指出我的理解有什麼問題以及可能的解決方法。
謝謝。
編輯:
只是爲了澄清,劇本 'somefile
' 可能會或可能不存在。如果存在,那麼我希望腳本的輸出存儲在'a
'中。如果不是,我想要在'a
'中存儲錯誤消息「no such file or dir」
它不是關於權限...我想要將錯誤消息或返回值存儲在變量中。 – 2009-02-06 07:37:27
我在說的是,你不需要運行sh來運行腳本(如果你這樣做,sh會在輸出上加上自己的防火牆)。只需直接運行腳本,爲此,您需要'chmod + x'它。 – paxdiablo 2009-02-06 07:41:54
請嘗試以下操作:「chmod u + x somefile; a =`。/ somefile`「,然後看看設置的是什麼 – paxdiablo 2009-02-06 07:44:10