如何执行存储在变量中的Bash脚本并传递参数?
执行存储在变量中的Bash脚本(带参数)
可以直接通过以下命令执行变量中的脚本并传入对应参数:
bash -c "$script" _ param1 param2 param3
关键细节说明:
bash -c用于让Bash解释执行指定字符串内的脚本代码- 占位符
_的作用是模拟原脚本文件执行时的$0(脚本名),确保后续传入的param1、param2等参数对应到脚本内的$1、$2,和直接执行脚本文件的参数逻辑完全一致 - 如果省略
_,第一个参数会被当作$0,导致参数位置偏移,因此建议保留占位符
远程执行场景(以SSH为例)
如果要在远程机器上执行,可直接将命令整合到SSH指令中:
ssh user@remote-host "bash -c '$script' _ param1 param2 param3"
若脚本内容包含单引号,需先对脚本内容进行转义避免冲突,可借助printf "%q"处理:
ssh user@remote-host "bash -c $(printf "%q" "$script") _ param1 param2 param3"
内容的提问来源于stack exchange,提问作者Yair Halberstadt
相关产品推荐
相关产品推荐

