停止 bash 脚本参数中的波浪号扩展

Stop tilde expansion in bash script arguments

考虑这个小脚本:

# script.sh
echo $@

如果我这样调用它 ./script.sh ~/docs,我会得到 /home/me/docs 作为输出。但是,我需要它来回显 ~/docs。我怎样才能做到这一点?

不在脚本的控制之下。这取决于用户。他们必须引用波浪号以防止它被扩展。选项包括:

./script.sh \~/docs
./script.sh '~/docs'
./script.sh "~"/docs