我需要在同一个远程ssh命令中使用远程变量和局部变量
export CASSANDRA_DIR=/opt/cassandra
ssh root@sdi-prod-02 <<\EOF
export READ=$(grep IPADDR /etc/sysconfig/network-scripts/ifcfg-eth0 |awk -F= '{print $2}')
echo "listen_address: $READ" to directory "$CASSANDRA_DIR"
EOF
Run Code Online (Sandbox Code Playgroud)
$ SC变量工作得很好,而CASSANDRA_DIR不工作.以下适用于CASSANDRA_DIR
ssh root@sdi-prod-02 echo "directory=$CASSANDRA_DIR"
Run Code Online (Sandbox Code Playgroud)
谢谢,迪恩
Gil*_*not 10
什么应该在本地扩展,保持原状$,如$foobar
你想远程扩展的东西,你可以使用反斜杠: \$foobar
默认情况下,here-docs会扩展变量.
防爆.:
cat<< EOF
$UID
EOF
Run Code Online (Sandbox Code Playgroud)
为避免在here-doc中扩展,您可以使用以下格式:
cat<< 'EOF'
$variable_that_will_not_been_expanded
EOF
Run Code Online (Sandbox Code Playgroud)
或者你的:
cat<< \EOF
$variable_that_will_not_been_expanded
EOF
Run Code Online (Sandbox Code Playgroud)
两者都有效.
| 归档时间: |
|
| 查看次数: |
5653 次 |
| 最近记录: |