我想知道组里的数据是不是数字;脚本有效吗?
当x="1 2 3"
时我可以做一个for循环:
for i in $x
我想知道这是否正确:
read x
read y
xm=`cat $x`
ym=`cat $y`
zm="$xm $ym"
for i in $zm
do
for j in $i
do
echo $j
done
done
最佳答案
在
x="1 2 3"
for i in $x
你正在做的是for i in 1 2 3:
。
但在第二种情况下这样做
xm=`cat $x`
ym=`cat $y`
这可能会导致错误,提示没有这样的文件或目录
是echo $x
并且echo $y
文件不退出。如果是目录,它也会给出错误。
即使有效,循环也会遍历文件 echo $x
和 echo $y
的每个单词。
第二种情况的示例:
文件名:2
The quick brown fox jumps over the lazy dog.
现在正在做:
ym=`cat 2`
for i in $ym; do echo $i; done
输出:
The
quick
brown
fox
jumps
over
the
lazy
dog.
如果文件内容为:1 2 3 4 5 6 7 8
,则输出为:
1
2
3
4
5
6
7
8
<小时/>
如果你这样做:
for i in "$xm $ym"; do ....; done
它将把“$xm $ym”
作为一个整体。
如果您希望从两个文件中单独获取每个单词,请使用:
for i in $xm $ym; do ....; done
示例:
假设有两个文件:
文件1
和文件2
。
file1的内容是1 2 3 4 5 6 7 8 9
,file2的内容是:敏捷的棕色狐狸跳过了懒狗。
现在:
xm=`cat file1`
ym=`cat file2`
<小时/>
j=0
for i in "$xm $ym";do echo $i $j; ((j+=1)); done
输出:
1 2 3 4 5 6 7 8 9 The quick brown fox jumps over the lazy dog. 0
<小时/>
j=0
for i in $xm $ym;do echo $i $j; ((j+=1)); done
输出:
1 1
2 2
3 3
4 4
5 5
6 6
7 7
8 8
9 9
The 10
quick 11
brown 12
fox 13
jumps 14
over 15
the 16
lazy 17
dog. 18
<小时/>
我希望现在一切都清楚了。
关于linux - shell语言的数据组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30875455/