BASH:根据用户输入,在本地或远程计算机上的函数中运行所有命令



i具有一个bash函数,该功能将数组作为参数,并执行多个命令。

基于用户输入,我想在本地或远程计算机上运行此方法中的所有命令。它在命令中有许多引号,并与"回荡。

This is how I am invoking the function right now:
     run_tool_commands "${ARGS[@]}"
function run_tool_commands {
     ARGS=("$@")
     .. Loads of commands here
}
if [ case 1 ]; then 
  # run locally 
else 
  # run remotely
fi

这似乎很有帮助,但是如果我将方法文本输送到"此处文档",这是可能的。

如果

  1. 在远程系统上也存在所有要在run_tool_commands下执行的命令,
  2. 所有命令都是可执行的,&不是别名/功能
  3. 所有这些拒绝物都在默认路径中。(无需源。BashRC或远程上的任何其他文件。)

那么,也许此代码可能有效:(未测试):

{ declare -f run_tool_commands; echo run_tool_commands "${ARGS[@]}"; } | ssh -t user@host

{ declare -f run_tool_commands;
  echo -n run_tool_commands;
  for arg in "${ARGS[@]}"; do
      echo -ne ""$t" ";
  done; } | ssh -t user@host

使用循环,以保存围绕参数的报价。(可能需要也可能不需要,未测试。)

相关内容

  • 没有找到相关文章

最新更新