我们如何读取所有文本文件并输入参数,以便我们可以为变量处理它?</ p>
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
read.sh:
$file1=$1
$file2=$2
...
$file9=$9
但它插入“1.txt”而不是100,我们如何获取文件的值而不是文件的名称?
答案 0 :(得分:2)
不确定我是否正确理解了您的问题。如果要将作为参数传递的文件的内容放入变量$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
创建一个关联数组(或字典),您可以在其中存储名称→值映射,例如文件名→内容。
答案 1 :(得分:1)