2012-07-13 109 views
1

我有一個返回字符串/路徑的小腳本。此路徑是可執行文件,我如何運行可執行文件?謝謝。執行命令結果的Bash

例子: my_command命令other commands ...返回/主頁/ mydesktop/myexecutable 我需要執行的/ home/mydesktop/myexecutable

+0

「可執行」更像是一種許可,而不是像Windows中的.exe那樣的原子對象。什麼程序實際運行可執行文件?你只需要在腳本中適當地調用它的命令行參數。 – 2012-07-13 15:24:40

回答

2

你可以試試這個:

`your_command args etc` 

的反引號被命令的輸出替換,然後進行評估。由於它位於輸入行的開頭,因此bash會嘗試執行它。

這是一個方便的技巧就知道了,因爲你可以使用它的各種有趣的:

cp your_file .backup/`date "+%Y-%m-%d"`_your_file 

會在前面加上當前日期爲芒備份您的不佳文件的副本...

編輯:在評論中,我們瞭解到,您實際上應該使用$()語法。所以,這相當於:

$(your_command args etc) 

cp your_file .backup/$(date "+%Y-%m-%d")_your_file 

,因爲你可以嵌套這個...

+4

'$()'是[首選](http://mywiki.wooledge.org/BashFAQ/082)的反引號。 – 2012-07-13 15:36:40

+0

如果我已經在命令中使用替換,該怎麼辦?如何使用它兩次?我有:mycommand args ...'帶替代參數的其他命令'謝謝。 – MoreOver 2012-07-13 15:38:42

+2

@ user1523953:這是您應該使用'$()'代替的主要原因。您可以儘可能多地嵌套'$()':'$(echo $(做一些命令到$(某個命令的結果)))' – Sorpigal 2012-07-13 15:48:56

0

如果它返回一個可執行的腳本/程序使用:

chmod +x /home/mydesktop/myexecutable 
/home/mydesktop/myexecutable 

如果它返回一個可執行的STRING使用:

eval STRING