我创建了一个bash脚本,用于选择要插入到RAR命令中的文件/文件夹:
#!/bin/bash
prompt="Please select a file:"
options=( $(find -maxdepth 1 -print0 | xargs -0) )
PS3="$prompt "
select opt in "${options[@]}" "Quit" ; do
if (( REPLY == 1 + ${#options[@]} )) ; then
exit
elif (( REPLY > 0 && REPLY <= ${#options[@]} )) ; then
echo "You picked $opt which is folder $REPLY"
echo -e "What do you want to name your archive?"
read archivename
rar a $archivename.rar $opt
break
else
echo "Invalid option. Try another one."
fi
done
因此,这将在我运行脚本的位置创建所有文件/文件夹的列表,然后将我的选择放入“ RAR”命令中,以将选定的文件或文件夹打包。
我希望能够运行脚本并选择多个文件和文件夹以输入rar命令。这些文件可以用于顺序命令或相同命令... IE:
rar a $archivename.rar $opt1 $opt2 $opt3 $opt4
OR
rar a $archivename.rar $opt
rar a $archivename1.rar $opt1
rar a $archivename2.rar $opt2
第二个示例显示了将按顺序运行的命令。
感谢您的帮助!谢谢!
我希望能够运行脚本并选择多个文件和用于输入rar命令的文件夹。
您可以为此使用dialog
清单。示例(假设${options[@]}
包含要选择的所有文件/文件夹的列表):
prompt="Please select files:"
set -- "${options[@]/#/\"}"; set -- "${@/%/\" \"\" \"\"}"
read -a opt < <(eval dialog --checklist '"$prompt"' 0 0 0 $@ 2>&1 >/dev/tty)
[ "$opt" ] || exit
eval opt=(${opt[@]}) # parse the quotes
set
命令在文件名前后加上引号,以便它也可用于包含空格的名称。所选名称被放置在${opt[@]}
中。然后,您可以
rar a $archivename.rar "${opt[@]}"
或
rar a $archivename.rar "${opt[0]}"
rar a $archivename.rar "${opt[1]}"
rar a $archivename.rar "${opt[2]}"