bash脚本怎么读取其他文件中的内容
我们直接使用命令替换就可以,即使用命令`cat filepath`或 $(cat filepath),例如:
(base) skt1faker@SKT1Faker:~/my_procedure/linux/bash_study$ cat input
1 2 3 4359820
2 esdjfklsgj dsmkl sldk gjskgsjkjg skl
"jsdi jsdjkg skjgsk jgklsj lsk "
3
4
5
(base) skt1faker@SKT1Faker:~/my_procedure/linux/bash_study$ sh test.sh
a[2] =
元素个数 = 1
1
2
3
4359820
2
esdjfklsgj
dsmkl
sldk
gjskgsjkjg
skl
"jsdi
jsdjkg
skjgsk
jgklsj
lsk
"
3
4
5
(base) skt1faker@SKT1Faker:~/my_procedure/linux/bash_study$ cat test.sh
a=$(cat input)
echo "a[2] = ${a[2]}"
echo "元素个数 = ${#a[@]}"
for i in $(cat input)
do
echo "${i}"
done
(base) skt1faker@SKT1Faker:~/my_procedure/linux/bash_study$ ls
input test.sh test1.sh
注意这个$(cat input)
返回的不是一个数组,应该是一个字符串,因为a[2]是空的,并且检查元素个数是一个,所以他简简单单那就是一个值,而不是一个数组
在for中以字符串的空格为单位进行遍历,这里将$(cat input)$
改为${a}
结果一样