在 bash 脚本中执行命令
Execute a command in bash script
当命令作为第一个参数传递给shell 脚本。示例:
sh command_execute.sh ls -l
假设我在命令行输入上面的内容,理想情况下我希望脚本查看第一个参数(在本例中为 ls -l
),然后执行它。
有两种方法可以做到这一点。一种方法是将 shell 脚本设置为
# File: command_execute.sh
和 运行 是这样的:sh command_execute.sh 'ls -l'
(注意 ls -l
周围的单引号)。这将做的是将完整的字符串 ls -l
传递给您的脚本,并且由于它是脚本的第一个参数,因此脚本中的 </code> 将有效地替换为 <code>ls -l
,然后将执行该命令。
另一种方法是将其用作您的脚本:
# File: command_execute.sh
"$@"
在这种情况下,"$@"
是传递给脚本的所有参数。如果你 运行 像 sh command_execute.sh ls -l
这样的脚本(注意在这种情况下 ls -l
是 而不是 引用),然后 ls
被传递给脚本作为参数 1,-l
作为参数 2 传递给脚本。然后 "$@"
有效地替换为 ls -l
,然后执行命令。
哪一个最好取决于您的要求。
当命令作为第一个参数传递给shell 脚本。示例:
sh command_execute.sh ls -l
假设我在命令行输入上面的内容,理想情况下我希望脚本查看第一个参数(在本例中为 ls -l
),然后执行它。
有两种方法可以做到这一点。一种方法是将 shell 脚本设置为
# File: command_execute.sh
和 运行 是这样的:sh command_execute.sh 'ls -l'
(注意 ls -l
周围的单引号)。这将做的是将完整的字符串 ls -l
传递给您的脚本,并且由于它是脚本的第一个参数,因此脚本中的 </code> 将有效地替换为 <code>ls -l
,然后将执行该命令。
另一种方法是将其用作您的脚本:
# File: command_execute.sh
"$@"
在这种情况下,"$@"
是传递给脚本的所有参数。如果你 运行 像 sh command_execute.sh ls -l
这样的脚本(注意在这种情况下 ls -l
是 而不是 引用),然后 ls
被传递给脚本作为参数 1,-l
作为参数 2 传递给脚本。然后 "$@"
有效地替换为 ls -l
,然后执行命令。
哪一个最好取决于您的要求。