bash – 在heredoc部分设置变量
发布时间:2020-12-15 21:38:05 所属栏目:安全 来源:网络整理
导读:我是一个 shell脚本新手,所以我必须做一些愚蠢的事情,为什么这不会起作用: #!/bin/shmyFile=$1while read linedossh $USER@$line ENDSSHls -d foo* | wc -l count=`ls -d foo* | wc -l`echo $countENDSSHdone $myfile 应打印两行,每行应具有相同的值……但
我是一个
shell脚本新手,所以我必须做一些愚蠢的事情,为什么这不会起作用:
#!/bin/sh myFile=$1 while read line do ssh $USER@$line <<ENDSSH ls -d foo* | wc -l count=`ls -d foo* | wc -l` echo $count ENDSSH done <$myfile 应打印两行,每行应具有相同的值……但它们不具有相同的值.第一个print语句[ls -d foo * |的结果wc -l]具有正确的值,第二个print语句不正确,它始终打印为空白.我需要做一些特殊的事情来将值分配给$count吗? 我究竟做错了什么? 谢谢 解决方法#!/bin/sh while read line; do echo Begin $line ssh $USER@$line << ENDSSH ls -d foo* | wc -l count=`ls -d foo* | wc -l` echo $count ENDSSH done < $1 你的脚本唯一的问题是,当没有引用heredoc令牌时,shell会进行变量扩展,因此在远程命令发布之前,本地shell正在扩展$count … (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |