由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
Linux版 - 以下的script能成立吗?应该怎么实现?
相关主题
请教一个打印列的问题找不到命令的路径
如何让bash不自动转换数字?问个简单的命令
bash "." commandshell script和variable index
问问应该学用那个shell?Bash Programming
sed 和 bash script 求助新手想学bash scripting。
问两个Linux 的问题问一个run bash-script command several times的问题
求助一个bash脚本问题zsh的确好用,希望主流distro用这个做default
bash script真难看懂Windows XP下如何读取Ubuntu Linux里的文件?
相关话题的讨论汇总
话题: idav话题: ifs话题: arr话题: line话题: cal1
进入Linux版参与讨论
1 (共1页)
b****e
发帖数: 906
1
Something like the following ... in BASH
#***********************************
iDAV=0
for line in $(cat file); do
IFS_bk=$IFS; IFS=' '; arr=($line)
if [[ ${arr[0]} == *'DAV'* ]]; then
iDAV=$(( $iDAV+1 ))
val$iDAV=${arr[0]}
cal$iDAV=${arr[1]}
fi
IFS=$IFS_bk
done
#*******************************
when run, it complains the following
calc_OSZICAR: line 88: val1=12: command not found
calc_OSZICAR: line 89: cal1=13: command not found
I actually expect the script to define val1, val2, val3, ... and cal1, cal2,
cal3, ... during the iteration. Anybody has any idea how to do this?
Many thanks!
z****s
发帖数: 192
2
像这样定义”val$iDAV“bash变量不可以吧。
你可以用二维数组(2D array)定义你的众多变量。
可以google一下,应该有很多实用的例子。
b****e
发帖数: 906
3
谢谢兄台的指点。是好像不行,其中用到的概念是动态变量(dynamical variable)。
在网上查到可以用declare来强行定义,但要提取数据时还是需要做很多的手脚,所以
还是用数组方便一些。

【在 z****s 的大作中提到】
: 像这样定义”val$iDAV“bash变量不可以吧。
: 你可以用二维数组(2D array)定义你的众多变量。
: 可以google一下,应该有很多实用的例子。

1 (共1页)
进入Linux版参与讨论
相关主题
Windows XP下如何读取Ubuntu Linux里的文件?sed 和 bash script 求助
怎么用ooo的Calc打开txt文件呢?问两个Linux 的问题
openoffice calc里面怎么插入pdf object?求助一个bash脚本问题
OpenOffice deploymentbash script真难看懂
请教一个打印列的问题找不到命令的路径
如何让bash不自动转换数字?问个简单的命令
bash "." commandshell script和variable index
问问应该学用那个shell?Bash Programming
相关话题的讨论汇总
话题: idav话题: ifs话题: arr话题: line话题: cal1