如何使 cmd 运行 进入循环?

How to make cmd run inside loop?

我是不是做错了什么?

这个循环似乎不起作用。

#!/usr/bin/ksh

num=3
for i in $(seq 1 "$num") 
do
awk 'NR==$i' "$file1" > "$file2"
# Doing some operation
done

我要执行 3 个 awk:

awk 'NR==1' "$file1" > "$file2"
# do some operation
awk 'NR==2' "$file1" > "$file2"
# do some operation
awk 'NR==3' "$file1" > "$file2"
# do some operation

在 Bourne shell 及其衍生版本(ksh、zsh 等)中,变量不会在单引号内展开。

变化:

awk 'NR==$i'

至:

awk "NR==$i"

如果您的 awk 程序比这一行更长,请保留单引号并使用 -v:

定义一个 awk 变量
awk -v "i=$i" 'NR == i'