0

私が望むのは、ユーザーが zenity を使用してどこからでもファイルを選択できるようにすることです。スクリプトはファイル拡張子 (.tar.gz) や (.zip) などを検出し、それに応じてアクションを実行します。これが例です。

#! /bin/bash

FILE=$(zenity --file-selection --title="Select a file to check")
echo "File: $FILE"

if [ "$FILE" = "*.zip" ] 
then
    echo "File that is a .zip found"
    FILENAMENOEXT="${FILE%.*}"
    echo "Filename with extention $FILENAMENOEXT"
    #Perform xx action to $FILE if it is a zip

elif [ "$FILE" = "*.tar.gz" ]
then
echo "File is a .tar.gz found"
FILENAMENOEXT="${FILE%.tar.*}"
echo "Filename with extention $FILENAMENOEXT"
#Perform xx action to $FILE if it is a t.tar.gz

else
    echo "File is neither .zip nor .tar.gz"
fi

echo "test $FILENAMENOEXT"
4

1 に答える 1

2

これはほぼ正しいです。

パターン マッチングを行うにはを使用する必要があり[[、引用符はパターン マッチングを無効にします。

だから、[ "$FILE" = "*.zip" ]あなたが望む[[ "$FILE" = *".zip" ]]代わりに、そしてあなたが[ "$FILE" = "*.tar.gz" ]望む代わりに[[ "$FILE" = *".tar.gz" ]]

/caseの代わりにステートメントを使用することもできます。ifelif

case "$FILE" in
*.zip)
    echo "File that is a .zip found"
    ;;
*.tar.gz)
    echo "File is a .tar.gz found"
    ;;
*)
    echo "File is neither .zip nor .tar.gz"
    ;;
esac
于 2015-07-21T14:17:07.177 に答える