2012-07-13 111 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