Bash 用于加密作为参数从用户获取的文件的脚本

Bash Script to encrypt file taken in as parameter from user

我有以下问题。我有一个 bash 脚本,在执行时询问用户他们希望加密什么文件。该脚本工作正常,问题是文件名中有空格。我尝试了以下

read -p "Enter file name ..." test;
openssl enc -e -aes256 -in "'$test'" -out $test.enc -k -pass:$PASS

我收到以下错误消息

enc: Cannot open input file 'd d', No such file or directory

此行在 bash 脚本中有效,如果 运行 在终端中有效

openssl enc -e -aes256 -in 'd d' -out enc.enc -k -pass:$PASS

有人能给我指出正确的方向吗?谢谢

对于 OpenSSL 1.1.0f,您应该使用 -passin:

read -p "Enter file name ..." test;
openssl aes-256-cbc -in "$test" -out "$test".enc -k -passin pass:"$PASS"