2017-10-20 3 views
0

IFループを使って引数を作成しましたが、ループには複数の変数があります。ファイル名がCNで始まるファイルのみが削除されますが、CAのファイル名では削除されません。複数の変数を引数としてifを使ってファイルを削除する

ここに私のコードは、あなたの助けに感謝します。ありがとう! :)

if [ "$retval" = true ] 

    then 
    for file_name in "$processdir"/*?.?*; do 
     filebasename=$(basename "$file_name") 

    if [ "$prefix" == "CA" ] || [ "$prefix" == "CN" ]; 


    then 

    rm -f "$file_name" 

    retval_1="true"  

    fi 


done 

Fiの

答えて

0

あなたは$prefixに影響を与えることはありません。私はあなたがこれを試してみてください。この変数

を必要としないと思う:フィードバックのための

if [ "$retval" = true ] 
then 
    for file_name in "$processdir"/* 
    do 
     filebasename=$(basename "$file_name") 

     if [[ "$filebasename" == "CA*" ]] || [[ "$filebasename" == "CN*" ]] 
     then  
      rm -f "$file_name"  
      retval_1="true"  
     fi 
    done 
fi 
+0

コメントを書くための私の最初の時間は、コードのための私の返事は私を見ての便宜のために一番上にある、あなたを混同したくない

if [ "$retval" = true ] then for file_name in "$processdir$prefix"/* do filebasename=$(basename "$file_name") prefix=${filebasename:0:2} if [ "$prefix" == "CA" ]|| [ "$prefix" == "CN" ]; then rm -iv "$file_name" retval_1="true" fi done 

Fiの編集されたコード。ありがとう! 私はあなたの与えられたコードを試してみますが、両方のファイルは削除されません:( – jcast

0

おかげで、しかし、私はちょうど「CA」または「CNで始まるファイル名で検索するための$接頭辞を使用しました"また、私のディレクトリの命名規則のためにも。ここ

は私の編集したコードです:

関連する問題