如何将 cat 命令输出的每一行存储到一个数组中?例如,如果 cat /daemon 给了我
11.11.11-1
22.22.22-2
33.33.33-3
44.44.44-4
那么如何使用 shell 脚本将输出存储到一个数组中,并在单个 if 条件中检查该数组中是否存在“11.11.11-1”(但不在迭代内)?
如何将 cat 命令输出的每一行存储到一个数组中?例如,如果 cat /daemon 给了我
11.11.11-1
22.22.22-2
33.33.33-3
44.44.44-4
那么如何使用 shell 脚本将输出存储到一个数组中,并在单个 if 条件中检查该数组中是否存在“11.11.11-1”(但不在迭代内)?
使用bash:
$ cat file.txt | readarray arr
$ echo "${arr[@]}"
$ echo "${arr[2]}"
看 :
help readarray
对于第二个要求:
检查“11.11.11-1”是否在单个 if 条件中存在于该数组中(但不在迭代内)?
恐怕这在 shell 中是不可能的,但在 Perl 中是可以的。
编辑:如果你想通过迭代复制一个数组:
for i in "${arr[@]}"; do
arr2[1]=$[arr[i}}
done