스크립트 파일을 실행하려고 합니다.스크립트 파일원격 컴퓨터에서사용자 @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
여기서는 ssh
var1/var2/var3 변수를 명령줄의 환경 변수로 전달하고 있으며 이러한 변수는 bash
m/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