Bash 这里是嵌套循环中的字符串
我得到了这样一段bash代码:Bash 这里是嵌套循环中的字符串,bash,while-loop,Bash,While Loop,我得到了这样一段bash代码: var="empty" find $path1 -maxdepth 3 | while read line; do find $path2 -maxdepth 1 | while read line2; do if [[ $line2 != $var ]]; then echo "new value" fi var=$line2 done <<< "$line2" done var=“
var="empty"
find $path1 -maxdepth 3 | while read line; do
find $path2 -maxdepth 1 | while read line2; do
if [[ $line2 != $var ]]; then
echo "new value"
fi
var=$line2
done <<< "$line2"
done
var=“空”
读取行时查找$path1-maxdepth 3 |;做
在读取第2行时查找$path2-maxdepth 1;做
如果[[$line2!=$var]];然后
回应“新价值”
fi
var=$line2
done您正在使用read from stdin将值读取到第2行,并使用stdin上的here字符串将第2行的值输入到done
处的循环中。bash给出了here字符串的优先级,因此line2仅从line2赋值,这意味着它从未设置过
echo -e "one\nthree\nfive" | while read num
do echo $num
done <<< "two"
这个很好用 我也很难理解这个问题和他的意图,但是这绝对应该是一个评论而不是一个答案。我读错了吗,或者你是在用stdin的read将值读入第2行,然后用stdin上的here字符串将第2行的值输入循环?我知道有一个find管道,但是我的bash给出了here字符串的优先级<代码>echo-e“一个\n树\n五个”|同时读取num;执行echo$num;我知道这是错的。我只是想知道如何使var在循环中更改时保持不变。我做这个主题是因为类似的人在这里签名为复制字符串。
find ~ | while read f; do var=$f; echo $f; done