5
Bash:将命令作为参数传递给函数时,引号被剥夺
我正在尝试为我的脚本实现一种空运行机制,并在将命令作为参数传递给函数并导致意外行为时遇到引号被剥夺的问题。 dry_run () { echo "$@" #printf '%q ' "$@" if [ "$DRY_RUN" ]; then return 0 fi "$@" } email_admin() { echo " Emailing admin" dry_run su - $target_username -c "cd $GIT_WORK_TREE && git log -1 -p|mail -s '$mail_subject' $admin_email" echo " Emailed" } 输出为: su - webuser1 -c …