linux - shell语言的数据组

标签 linux bash shell

我想知道组里的数据是不是数字;脚本有效吗?

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 $xecho $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/

相关文章:

linux - 尝试理解 sys_socketcall 参数

bash - git auto-complete 不提示分支名称

bash - 检查非守护进程 Docker 容器,在它完成运行后

linux - 读取 : read error: 0: Resource temporarily unavailable when calling scripts using case in bash

c - Linux Fork 进程终止

python - 将数据写入单个机器的最快方法?

linux - 需要一个解决方案来同步从 iPerf 和 GPS 接收的数据

Linux 挂载失败并出现错误传输端点未连接

linux - 挂载 JFFS2 导致返回 ECC 错误

linux - Bash-同时运行多个命令