Gil*_*Gil 3 bash shell awk sed
我想知道重复使用同一组变量是否会导致 bash 脚本中出现任何不可预见的事件。这通常被认为是一个好的做法吗?
为了让我的查询更清楚一些。
我有一个像这样的脚本:
max=`cat loc1.c | wc -l`
bar=1
while [ $bar -lt $max ]
do
f1=`awk -v vr1=$bar 'NR == vr1' loc1.c`
f2=`awk -v vr1=$bar 'NR == vr1' loc2.c`
if [[ a random file exists ]] ; then # use var1 var2 var3 ; fi
if [[ a random file2 exists ]] ; then # use var1 var2 var3 ; fi
if [[ a random file3 exists ]] ; then # use var1 var2 var3 ; fi
((bar++))
done
Run Code Online (Sandbox Code Playgroud)
文件 loc1 和 loc2 列出了由换行符分隔的文件路径。路径根据行号传输到变量 f1 和 f2 。循环继续,直到 loc1 中的每个文件(由路径指向)都对 loc2 中指向的文件进行了某种数据操作。
欢迎任何建议。
我在下面的代码中重用变量 var1、var2、var3 [..]。
与变量使用无关,但您可以简化文件迭代,假设您不需要bar或max不需要其他任何东西:
while read -r f1 && read -r -u 3 f2; do
if [[ a random file exists ]] ; then # use var1 var2 var3 ; fi
if [[ a random file2 exists ]] ; then # use var1 var2 var3 ; fi
if [[ a random file3 exists ]] ; then # use var1 var2 var3 ; fi
done < loc1.c 3< loc2.c
Run Code Online (Sandbox Code Playgroud)