如何允许用户在 bash 脚本中输入文件名

如何允许用户在 bash 脚本中输入文件名

我有这个脚本,我将其称为“r1”:

for f in "$@"
do
fpath=`dirname "$f"`
file=`basename "$f"`
arc=$fpath"/"$file".rar"
rar a -v1024000 -r -m0 -ep1 -o- "$arc" "$f"
done

它运行良好,但我无法更改档案名称,我希望我可以这样做,结果是:

r1 Myphoto 照片/

应该是一个名为 Myphoto.rar 的档案,其中包含 Photos/ 目录

我该如何修改脚本?

我认为这一行:

file=`basename "$f"`

应该有所不同,这样我就可以根据自己的需要选择档案名称

答案1

以下脚本将准确执行您的要求。

 #!/bin/sh

 if [ ! $# -eq 2 ]
    then
    echo " Two arguments needed, a file name for the rar file "
    echo " and a directory/file name to be compressed. "
    echo " Both can be relative or absolute addresses "
    exit 1
 fi

 if [ -e $1.rar ] 
    then
    echo " File $1.rar already exists. Quitting "
    exit 2
 fi

 if [ ! -d $2 -a ! -e $2 ]
    then
    echo " $2 is not a directory/file to be compressed. Quitting "
    exit 3
 fi

 file=$1
 dir=$2
 rar a -v1024000 -r -m0 -ep1 "$file".rar  $dir
 exit

我添加了绝对最小值的错误检查,以及一行提醒您可以使用此脚本来压缩文件和文件夹。

相关内容