Shell 向变量添加数字增量

Shell 向变量添加数字增量,shell,unix,while-loop,ksh,Shell,Unix,While Loop,Ksh,我有一个文件,它有N行数。我需要读取每一行并将其存储在变量中。 例如,var1中的第一行,var2中的第二行,等等 我在循环时尝试了下面的 count=1; while read line do var$count=`echo $line` echo -e "$var`$count`" done< input.txt count=1; 读行时 做 var$count=`echo$line` echo-e“$var`$count`” 完成

我有一个文件,它有
N
行数。我需要读取每一行并将其存储在变量中。 例如,var1中的第一行,var2中的第二行,等等

我在循环时尝试了下面的

count=1;
while read line  
do  
var$count=`echo $line`  
echo -e "$var`$count`"  
done< input.txt 
count=1;
读行时
做
var$count=`echo$line`
echo-e“$var`$count`”
完成
在上面的代码中,我在上面的最后一行中遇到了错误

如何用另一个被引用的变量引用一个变量


在这里,我只是重复,但实际上我希望存储在变量中的值进行一些算术计算(比如计算时间平均值)

在bash或ksh中使用数组:

array=( $(< input.txt) )

echo ${array[0]} # first element
echo ${array[1]} # second element

echo ${#array[*]} # length
array=($(

请参阅。

在bash或ksh中使用数组:

array=( $(< input.txt) )

echo ${array[0]} # first element
echo ${array[1]} # second element

echo ${#array[*]} # length
array=($(

参见。

正如Mark Setchell所指出的,阵列是更好的解决方案。它们也有KSh版本:

set -A lines
count=1
while read line; do
    lines[$count]=$line
    echo -e ${lines[$count]}
    count=$(( $count + 1 ))
done < input.txt
set-A行
计数=1
读行时;做
行[$count]=$line
echo-e${lines[$count]}
计数=$($count+1))
完成

有关更多详细信息,请参阅本书或O'Reilly的《学习Korn Shell》一书。

正如Mark Setchell所指出的,阵列是更好的解决方案。它们也有KSh版本:

set -A lines
count=1
while read line; do
    lines[$count]=$line
    echo -e ${lines[$count]}
    count=$(( $count + 1 ))
done < input.txt
set-A行
计数=1
读行时;做
行[$count]=$line
echo-e${lines[$count]}
计数=$($count+1))
完成

要了解更多详细信息,请查看这篇文章,或阅读O'Reilly的《学习Korn Shell》一书。

首先,问题被标记为“ksh”。其次,以这种方式构造数组会将输入文件按字(空格)而不是按行分割。OP试图解决该问题的方式并不表明他有很多经验,因此他选择使用ksh的方式可能不是很明智,bash非常适合解决该问题。如果他必须使用ksh,欢迎他在自己喜欢的shell中应用这个概念。我同意你的第二点,我的答案中的例子将很快向OP展示我的答案是如何工作的,这样他就可以问他是否希望以不同的方式阅读。我的答案并不总是规定性的和绝对的,有时我只是提供了一个正确的方向。此外,问题标题意味着每一行都是OP想要添加的数字,所以我的阅读方法应该是好的。我同意我会选择bash而不是ksh。实际上,不知道这些ksh问题是从哪里来的。如果只是数字,
array=($(cat input.txt))
解决方案甚至可以在ksh中工作,这是一个好问题。首先,问题被标记为“ksh”。其次,以这种方式构造数组会将输入文件按字(空格)而不是按行分割。OP试图解决该问题的方式并不表明他有很多经验,因此他选择使用ksh的方式可能不是很明智,bash非常适合解决该问题。如果他必须使用ksh,欢迎他在自己喜欢的shell中应用这个概念。我同意你的第二点,我的答案中的例子将很快向OP展示我的答案是如何工作的,这样他就可以问他是否希望以不同的方式阅读。我的答案并不总是规定性的和绝对的,有时我只是提供了一个正确的方向。此外,问题标题意味着每一行都是OP想要添加的数字,所以我的阅读方法应该是好的。我同意我会选择bash而不是ksh。实际上,不知道这些ksh问题是从哪里来的。如果只是数字,
array=($(cat input.txt))
解决方案甚至可以在ksh中工作,很好的捕获。在哪里增加
count
?我的不好。修正了这个例子。你在哪里增加计数?我的坏。修正了这个例子。