bash: 如何正确地 read/assign 文本文件中的多行变量
bash: How to properly read/assign multiple lines to variables from text file
如果这是重复的,我深表歉意,但我还没有找到好的答案。
我有一个包含三个路径的文本文件,每个路径作为一个新行:
path1
path2
path3
我想将这些路径分配给三个变量。当我读入文本文件并将这三个路径分配给三个变量时,第一个变量被正确分配给 path1 而不是 second/third,并且第一个变量被重新分配给 path2。两个 second/third 变量始终为空(可能是换行符?)
while read -r a b c; do
echo first_path is $a
echo second_path is $b
echo third_path is $c
done < ./ready.txt
输出是
first_path is path1
second_path is
third_path is
first_path is path2
second_path is
third_path is
这一定是一个简单的错误。任何帮助表示赞赏。谢谢。
每次调用 read
都会读取一行。您要迭代的是变量的 names。
for name in first_path second_path third_path; do
read -r "$name"
echo "$name is ${!name}"
done
如果这是重复的,我深表歉意,但我还没有找到好的答案。 我有一个包含三个路径的文本文件,每个路径作为一个新行:
path1
path2
path3
我想将这些路径分配给三个变量。当我读入文本文件并将这三个路径分配给三个变量时,第一个变量被正确分配给 path1 而不是 second/third,并且第一个变量被重新分配给 path2。两个 second/third 变量始终为空(可能是换行符?)
while read -r a b c; do
echo first_path is $a
echo second_path is $b
echo third_path is $c
done < ./ready.txt
输出是
first_path is path1
second_path is
third_path is
first_path is path2
second_path is
third_path is
这一定是一个简单的错误。任何帮助表示赞赏。谢谢。
每次调用 read
都会读取一行。您要迭代的是变量的 names。
for name in first_path second_path third_path; do
read -r "$name"
echo "$name is ${!name}"
done