我有一个包含路径的变量。特别是,我需要这个变量从第二个文件(输入(读取路径。这就是我使用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命令吗?
提前谢谢。
使用参数扩展:
for t in $(seq 1 1000)
do
tmp=path_dock${t}
cd ${!tmp}
....
done
使用数组而不是许多编号的变量
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