SSHを介して複数のパラメータを渡し、SSHスクリプトでこれらのパラメータを使用する方法は?

SSHを介して複数のパラメータを渡し、SSHスクリプトでこれらのパラメータを使用する方法は?

スクリプトファイルを実行しようとしています。スクリプトファイルリモートコンピュータからユーザー @remote-01使用SSH。また、このsshコマンドの実行中にパラメータを渡す必要があります。したがって、次のパラメーターを使用する必要があります。スクリプトファイル。これは私が実行したいスクリプトです。

    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をパラメータとして渡し、上記のようにスクリプトで使用するにはどうすればよいですか?

答え1

この質問は以前に回答されました。質問

ただし、目的のタスクは次のとおりです。

スクリプトファイル

#!/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のパラメーターは、$ 1のように$ numberとして参照できます。

答え2

数多くの試行錯誤を経てついに解決策が出ました。

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

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

次のように使用する必要がありますスクリプトファイル

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

答え3

ここでは、sshvar1/var2/var3 変数をコマンドラインの環境変数として渡し、これらの変数はbashm/c のコードで使用できます。remote

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

内容はsc.sh次のとおりです。

if [ "$var1" = True ]; then
   echo "Todo"
fi

if [ "$var2" = True ]; then
   echo "Todo"
fi

if [ "$var3" = True ]; then
   echo "Todo"
fi

..... so on

関連情報