我有一个与此类似的bash脚本:
echo Enter a sentence
read line
for $x in $line ; do
echo $x
done
但是,它只回显整个输入而不是输入中的每个单词。这是为什么?有没有办法解决这个问题而不知道要输入的单词数,使用for循环,最好不使用read -a选项,因为我知道如何使这个工作,但我不相信它符合已经施加的要求。
由于 OSFTW
答案 0 :(得分:2)
请改为尝试:
for x in $(echo "$line")
答案 1 :(得分:1)
不知道为什么会这样,但你的标题中不应该有$
,假设你的IFS
是正确的,它应该按预期工作
#!/bin/bash
echo Enter a sentence
read line
IFS=$' \t\n' #reset to default IFS
for x in $line ; do
echo "$x"
done
e.g。
> ./script
Enter a sentence
a b c d
a
b
c
d