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
?我的不好。修正了这个例子。你在哪里增加计数?我的坏。修正了这个例子。