将文件名作为参数发送到bash脚本以对每个文件名执行条件

时间:2019-05-29 18:43:01

标签: bash shell

我有一个列表文件,它使用/test/files/*。{csv,xls,xlsx,gz,zip,tar,txt,dtxt,error,log,out}作为脚本myscript.sh的参数。 该脚本应该查看文件是否存在,文件是否可读写,并选择每个文件并进行加密。但是脚本在加密第一个文件后停止。 例如:它将file1.csv加密为file1.csv.gpg并停止。它不会拾取路径中下一个文件。

usr/bin/gpg --batch --yes -r 'keyname' --trust-model always --encrypt-files /test/files/*.{csv,xls,xlsx,gz,zip,tar,txt,dtxt,error,log,out}

这可以正常工作并加密所有文件,但是如果文件属于其他用户或组,则该文件失败,因为当前用户没有权限。

因此,我编写了脚本来评估文件是否存在,文件是否可读写。

FILE=$1
    if [ -e $FILE ]
        then
            echo "File exits"
                if [[ -r $FILE && -w $FILE ]]
                    then
                                usr/bin/gpg --batch --yes -r 'keyname' --trust-model always --encrypt-files $FILE
                            echo "Encryption Successful"
                    else
                            echo "File not accessible"
                fi
        else
            echo "File doesn't exits"
    fi

脚本应成功加密/ test / files / *中的所有文件。{csv,xls,xlsx,gz,zip,tar,txt,dtxt,error,log,out}

0 个答案:

没有答案