我有一个包含路径的变量。特别是,我需要此变量从第二个文件(输入)读取路径。这就是为什么我使用awk。变量是这样的:
path_dock1=`awk 'NR==33 {print $1}' input`
除了path_dock1之外,还有其他path_dock变量以相同的方式声明。
path_dock1=`awk 'NR==33 {print $1}' input`
path_dock2=`awk 'NR==34 {print $1}' input`
path_dock3=`awk 'NR==35 {print $1}' input`
...
我希望在for循环中使用这样的变量。特别是,我想将此变量用作cd命令的参数。为此,我使用了一个从1到n的for循环变量,其中n是path_dock的总数 变量。
for t in $(seq 1 1000)
do
cd $path_dock$t
....
done
当然,这种策略只是一种尝试,它是行不通的。 您是否有建议将参数传递给以这种方式执行的cd命令?
谢谢。
答案 0 :(得分:1)
使用参数扩展:
for t in $(seq 1 1000)
do
tmp=path_dock${t}
cd ${!tmp}
....
done
答案 1 :(得分:1)
使用数组代替许多编号变量
path_dock=()
for i in {1..100} ; do
path_dock+=($(awk 'NR=='$i' {print $1}' input))
done
...
for i in {1..100} ; do
cd "${path_dock[i]}"
...
done