Bash中的While循环未运行
我对Bash脚本非常熟悉,在运行“while”循环时遇到了麻烦。当我回显Bash中的While循环未运行,bash,while-loop,Bash,While Loop,我对Bash脚本非常熟悉,在运行“while”循环时遇到了麻烦。当我回显关键字时,将打印整个单词列表,然后当我回显长度时,将打印124。我相信我正确地使用了while循环和条件,所以我无法找出我做错了什么。有什么想法吗 keywords=$1 length=${#keywords} echo "$keywords" echo "$length" if [ -z "$keywords" ]; then while [ $length -gt 100 ]; do echo
关键字
时,将打印整个单词列表,然后当我回显长度
时,将打印124
。我相信我正确地使用了while循环和条件,所以我无法找出我做错了什么。有什么想法吗
keywords=$1
length=${#keywords}
echo "$keywords"
echo "$length"
if [ -z "$keywords" ]; then
while [ $length -gt 100 ]; do
echo "$keywords"
echo "$length"
keywords="${keywords%,*}"
length=${#keywords}
done
fi
echo $keywords
问题在于:
[ -z "$keywords" ]
如果其参数为空字符串,-z
为真。长度124的东西绝对不是空的。你的意思可能是-n
下次,请在问题中加入输入,以便我们重现问题。问题在这里:
[ -z "$keywords" ]
如果其参数为空字符串,-z
为真。长度124的东西绝对不是空的。你的意思可能是-n
下次,请在问题中加入输入内容,以便我们重现问题。如果不需要整个
语句,请填写整个;如果字符串为空,[$length-gt 100]
将失败,循环将被跳过。我一定是误读了文档,并将空字符串标志向后设置了。非常感谢。整个if
语句是不必要的;如果字符串为空,[$length-gt 100]
将失败,循环将被跳过。我一定是误读了文档,并将空字符串标志向后设置了。非常感谢。