如何变量以在 unix 中为 -f 选项剪切命令

How to variables to cut command in unix for -f option

我需要解析一个 sql 文件并提取所有语句。

例如sample.sql是这样的

alter table add column(c1 varchar(20));
alter table add column(c2 varchar2(10));

现在我想用下面的方式写一个脚本。

#!/bin/ksh
for file in sample.sql
do
    echo $file
    no_of_statement=`grep ";" $file|wc -l`
    echo $no_of_statement
    iterator=1
    statement=""
    while [ $iterator -le $no_of_statement]
        do
            echo "Inside While Loop"
            statement=`cat $file`
            statement1=`echo $statement | cut -d";" -f "${iterator}"`
            echo $statement1
            iterator=$iterator+1
        done
done

如果您将 [ $iterator -le $no_of_statement] 更改为 [ $iterator -le $no_of_statement ]

iterator=$iterator+1iterator=$(($iterator+1))

它打印查询:

sample.sql
2
Inside While Loop
alter table add column(c1 varchar(20))
Inside While Loop
alter table add column(c2 varchar2(10))