Bash:而且如果

问题描述 投票:-1回答:1

我写了这个命令

 i=$1
 file=/home/dream/Bureau/ProjetM2_DreemAT/data/dico/$i.dico.forme.lemme.txt  
 while  read -r f1 f2 f3 ; do
     if [[ "$f3" = "<unknown>" ]];
     then echo $f2  $f1
     else echo $f3  $f1
     fi
 done < $file

因为$i我得到了一个错误。我在1个文件上测试了这个命令,但是当我尝试将它用于20个文件时它不起作用

bash shell
1个回答
0
投票

如果您希望能够为脚本提供多个参数,则需要另一个循环。

for i in "$@"
do
    file=/home/dream/Bureau/ProjetM2_DreemABOUTALEB/data/dico/"$i".dico.forme.lemme.txt  
    while  read -r f1 f2 f3 ; do
        if [[ "$f3" = "<unknown>" ]];
        then echo "$f2  $f1"
        else echo "$f3  $f1"
        fi
    done < "$file"
done

还记得引用你的变量,否则如果值中有空格或通配符,你就会遇到问题。

© www.soinside.com 2019 - 2024. All rights reserved.