gpt4 book ai didi

bash - 在 heredoc 部分设置变量

转载 作者:太空宇宙 更新时间:2023-11-04 12:44:09 26 4
gpt4 key购买 nike

我是一个 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

应该打印两行,每行都应该有相同的值……但它们没有。第一个打印语句 [ls -d foo* | 的结果wc -l] 有正确的值,第二个打印语句不正确,它总是打印空白。我需要做一些特殊的事情来将值分配给 $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。 ..

关于bash - 在 heredoc 部分设置变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39269271/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com