Linux

如何通過 ssh 傳遞多個參數並在 ssh 腳本中使用這些參數?

  • April 20, 2017

我正在嘗試使用ssh在遠端機器user@remote-01上執行腳本文件****sc.sh。我還需要在執行這個 ssh 命令時傳遞參數。所以我必須在sc.sh中使用這些參數。這是我正在嘗試執行的腳本

   var1=True
   var2=False
   var3=True

   sshpass -p 'pswd' ssh user@remote-01 "bash -s" < /home/user/sc.sh

我的 sc.sh 看起來像:

   if var1 -eq True; then
      echo "Todo"
   fi

   if var2 -eq True; then
      echo "Todo"
   fi

   if var3 -eq True; then
      echo "Todo"
   fi

   ..... so on

我如何將 var1、var2、var3 作為參數傳遞並在我的腳本中使用它們?

這個問題之前已經回答過

但是,您可能想要做的事情如下。

sc.sh

#!/bin/bash

var1=$1
var2=$2
var3=$3

if $var1 -eq True; then
  echo "Todo1"
fi

if $var2 -eq True; then
  echo "Todo2"
fi

if $var3 -eq True; then
  echo "Todo3"
fi

然後執行以下命令

ssh user@remote-01 'bash -s' < test.sh true true true

BASH 中的參數可以通過 $ number e.g. $ 1

最後,通過多次嘗試和錯誤嘗試得到了解決方案。

var1="True"
var2="False"
var3="True"

sshpass -p 'pswd' ssh user@remote-01 "bash -s" < /home/user/sc.sh "$var1 $var2 $var3"

並且應該在sc.sh中使用如下

if [ "$1" = "True" ]; then
  echo "Todo"
fi
if [ "$2" = "False" ]; then
  echo "Todo"
fi
if [ "$3" = "True" ]; then
  echo "Todo"
fi

引用自:https://unix.stackexchange.com/questions/360084