Shell 我<;=:表达不完整;预计会有更多代币。ksh

Shell 我<;=:表达不完整;预计会有更多代币。ksh,shell,unix,expression,token,ksh,Shell,Unix,Expression,Token,Ksh,我得到了这个错误:i好的,让它工作起来 逻辑:代码将接受一个字符串,根据定义的分隔符将其分解为单词,并将每个单词作为数组元素 为了让事情变得简单一点,我删除了你问题中指定的另外两个delim选项(#和;) 工作代码: Kaizen ~/so_test $ cat zawk1.sh echo "entter a line : " ; read line ; vr="$line"; sep_mx=`echo $vr| awk '{ n=split($0,x,"@"); print n

我得到了这个错误:
i好的,让它工作起来

逻辑:代码将接受一个字符串,根据定义的分隔符将其分解为单词,并将每个单词作为数组元素

为了让事情变得简单一点,我删除了你问题中指定的另外两个delim选项(#和;)

工作代码:

Kaizen ~/so_test $ cat zawk1.sh
echo "entter a line : " ;
read line ;

vr="$line";

      sep_mx=`echo $vr| awk '{ n=split($0,x,"@"); print n }'` ; 
      echo $sep_mx ;  ## here the number of substring produced is calc.

      while [ $i -le $sep_mx ]
      do
          ## would print individual substring one at a time as the counter increases.
          echo $vr | awk -v er=$i '{ n=split($0,x,"@"); print x[er] }' ;
          i=$(( $i + 1 ));
      done
输出:

 Kaizen ~/so_test $ ./zawk1.sh
 entter a line :
 hello@world@how@are@you
 5
 hello
 world
 how
 are
 you

希望这有帮助

要回答最初的问题,错误消息已存在 解释错误发生的位置:


i
while[$iMmh是的,但现在我有了新的错误
=:找不到或打开文件。
用ksh-xv执行脚本来跟踪错误。我想你想要
$i nope。
$i也有同样的错误。谢谢。另外一件事,如果我只提取第一行的话?在本例中是“hello”“回声”hello@world@how@are@您可以“|awk'{n=split($0,x,“@”);打印x[1]}”`
 Kaizen ~/so_test $ ./zawk1.sh
 entter a line :
 hello@world@how@are@you
 5
 hello
 world
 how
 are
 you
vr=`$line`
$ echo "@fee#fie@foe" | awk '{ print split($0,x,"[@#;]") }'
4
$ echo "@fee#fie@foe" | awk '{ print split($0,x,"@#;") }'
1