我们如何读取所有文本文件并输入参数,以便我们可以将其处理为变量?
1.txt -->100
2.txt -->200
..
9.txt -->900
$ ./read.sh 1.txt 2.txt 3.txt 4.txt 5.txt 6.txt 7.txt 8.txt 9.txt
读.sh:
$file1=$1
$file2=$2
...
$file9=$9
但是它插入“1.txt”而不是100,我们如何获得文件的值而不是文件名?
不确定我是否正确理解了您的问题。如果要将作为参数传递给脚本的文件的内容放入变量$file1
,$file2
等中,则应read.sh
如下所示:
file1=$(<"$1")
file2=$(<"$2")
...
file9=$(<"$9")
请注意,在为变量赋值时,您必须使用不带前导的变量名$
。
更通用的解决方案(假设您使用的是 bash 4)可能如下所示:
declare -A files
while [ -n "$1" ]; do
files[$1]=$(<"$1")
shift
done
declare -A
创建一个关联数组(或字典),您可以在其中存储名称→值映射,例如文件名→内容。