我有一个脚本来读取一个字符的文件 这是我使用的脚本
INPUT=/path/
while IFS= read -r -n1 char; do
echo $char
done < "$INPUT"
它工作得很好我只能找不到如何将每个字符存储到变量中 我正在寻找像
这样的东西 N$X=$char
其中X =计数或字符,$ char =字符
任何帮助将不胜感激。谢谢!
答案 0 :(得分:2)
一般情况下,在bash中添加N1
,N2
等变量,并希望像N$i
i
一样访问它们另一个变量非常糟糕。解决这个问题的方法就是阵列。以下是使用数组解决问题的方法:
n=()
i=0
while read -r -n1 n[i]; do
echo "Character $i is ${n[i]}"
((++i))
done < "$INPUT"
此时,你在数组n
中有你的角色(好吧,不是全部)。您可以使用
k+1
${n[k]}
(请记住,数组索引从0开始)。
另一种可能性是在字符串中啜饮所有内容,就像这样简单:
string=$( < "$INPUT" )
您可以使用
访问角色k+1
${n:k:1}
(从索引k
开始获取长度为1的子字符串)。循环所有字符可以完成:
for ((k=0;k<${#string};++k)); do
echo "Character $k is '${string:k:1}'"
done
答案 1 :(得分:1)
你可以这样做:
X=0
while IFS= read -r -n1 char; do
eval "N$X=\$char"
X=`expr $X + 1`
done < "$INPUT"
在循环结束时,X0
,X1
,X2
等将包含已读入的各种字符。