在Bash-EOD中为Expect保留反斜杠转义单引号
我一直在努力寻找一个能帮助我解决这个问题的答案,但我不知道如何向expect语句发送反斜杠。下面是我的代码。当它试图执行ssh语句时,它在我需要的单引号之前从来没有反斜杠在Bash-EOD中为Expect保留反斜杠转义单引号,bash,Bash,我一直在努力寻找一个能帮助我解决这个问题的答案,但我不知道如何向expect语句发送反斜杠。下面是我的代码。当它试图执行ssh语句时,它在我需要的单引号之前从来没有反斜杠 #!/bin/bash CLUSTER_NAME=examplecluster SAMPLE_N=100 REP_N=1 declare -a sparr=('Wilson'"\'"'s_Warbler') for sp in "${sparr[@]}" do RUN_NAME=${sp}_${SAMPLE_N}_${RE
#!/bin/bash
CLUSTER_NAME=examplecluster
SAMPLE_N=100
REP_N=1
declare -a sparr=('Wilson'"\'"'s_Warbler')
for sp in "${sparr[@]}"
do
RUN_NAME=${sp}_${SAMPLE_N}_${REP_N}
cd /home/shared/stemhwf/stem_hwf/runs/${RUN_NAME}/data
/usr/bin/expect <<EOD
set timeout -1
spawn ssh hdiuser@${CLUSTER_NAME}-ssh.azurehdinsight.net "mkdir -p /home/hdiuser/${RUN_NAME}"
expect password: { send "XXXXXXXX"; exp_continue }
EOD
done
如何在ssh expect语句中保留反斜杠?声明数组时,在单引号前添加三个斜杠:
declare-a sparr=(“威尔逊的莺”)
还要在目标路径周围加上转义双引号,以便:
spawn ssh hdiuser@${CLUSTER_NAME}-ssh.azurehdinsight.net "mkdir -p \"/home/hdiuser/${RUN_NAME}\""
我知道包含反斜杠是有效的,因为我已经从命令行手动测试了它<代码>sshhdiuser@examplecluster-ssh.azurehdinsight.net“mkdir-p/home/hdiuser/Wilson's_Warbler_100_1”
spawn ssh hdiuser@${CLUSTER_NAME}-ssh.azurehdinsight.net "mkdir -p \"/home/hdiuser/${RUN_NAME}\""