#!/bin/sh
flag="False"
ssh -n $Domain_1@$IP "$( cat <<'EOT'
$flag="True"
cat << 'EOT'
)"
在連接到遠端位置之前,flag 等於 false。 –
答案1
我假設你想做一些類似的事情
#!/bin/sh
flag=$(
ssh -T "$user@$host" <<'END_SCRIPT'
# some operations on
# the remote host goes here
# later...
if some_condition; then
echo true
else
echo false
fi
END_SCRIPT
)
這將在遠端主機上執行作為引用的此處文件給出的腳本,並將其輸出指派給本機變數flag
。按照我在這裡寫的方式,我假設該位some operations
確實不是產生任何輸出,而遠端腳本產生的唯一輸出來自兩個條件echo
命令之一。
您的flag
變數將被分配字串true
或false
取決於 的結果some_condition
。
如果您需要使用遠端腳本內的值$flag
,則必須使用不含引號的此處文件。然後必須注意正確轉義您希望遠端發生的任何 shell 擴展(透過將$
這些轉義為\$
)。