我在 Bash shell 脚本库中有一个函数,它使用 getopts 来接受参数。我想在这些参数之一中指定一个 Bash 命令。然后,该函数继续将此存储的命令用于一个目的或另一个目的(例如,以自动方式生成 GNOME 桌面启动器,并将此存储的命令指定为启动器的执行)。如何以用户友好的方式保留命令中的特殊字符(并且,我的意思是不要求用户转义指定命令中的特殊字符或执行其他异常困难的操作)?
因此,函数的开头可能具有以下特征:
OPTIND=1; while getopts ":i:o:" options; do
case "${options}" in
i)
command_1="${OPTARG}"
;;
o)
fileName_1="${OPTARG}"
;;
\?)
echo "invalid option -"${OPTARG}""
return
;;
:)
echo "option -"${OPTARG}" requires an argument"
return
;;
esac
作为函数参数给出的命令可能如下所示:
echo "hello" | festival --tts