我有一个剧本的时候 这读取文件的字符是我使用的脚本庆典:每次从一个字符串一个字符阅读文本
INPUT=/path/
while IFS= read -r -n1 char; do
echo $char
done < "$INPUT"
它工作正常,只是我找不到了如何每个字符存储到一个变量 即时寻找类似
N$X=$char
其中X =计数或字符和$字符=字符
任何帮助,将不胜感激。谢谢!
我有一个剧本的时候 这读取文件的字符是我使用的脚本庆典:每次从一个字符串一个字符阅读文本
INPUT=/path/
while IFS= read -r -n1 char; do
echo $char
done < "$INPUT"
它工作正常,只是我找不到了如何每个字符存储到一个变量 即时寻找类似
N$X=$char
其中X =计数或字符和$字符=字符
任何帮助,将不胜感激。谢谢!
你可以做这样的事情:
X=0
while IFS= read -r -n1 char; do
eval "N$X=\$char"
X=`expr $X + 1`
done < "$INPUT"
在循环结束时,X0
,X1
,X2
等将包含在已被读取的各种人物
作为。一般的事情,有像N1
,N2
,N2
等变量,并希望能够访问他们像N$i
与i
另一个变量是非常糟糕的。对此的解决方案在阵列中。下面是我将如何使用数组,而不是解决问题:
n=()
i=0
while read -r -n1 n[i]; do
echo "Character $i is ${n[i]}"
((++i))
done < "$INPUT"
在这一点上,你有你的字符数组n
(当然不是全部,他们)英寸你可以有
${n[k]}
(记住,数组索引从0开始)访问字符k+1
。
另一种可能性是在一个字符串发出声音的一切,它是像这样简单:
string=$(< "$INPUT")
,你可以有
${n:k:1}
访问字符k+1
(取子长度1从索引k
开始)。循环上的所有字符可以做的是:
for ((k=0;k<${#string};++k)); do
echo "Character $k is '${string:k:1}'"
done
这个作品我想要的方式来 非常感谢你 –
不客气。但请[接受我的回答](http://stackoverflow.com/help/someone-answers)如果它适合你。 –
只要输入文件包含空格,这不会失败吗? – ruakh