1

我有一个提示用户输入路径的 shell 脚本:

read -e -p "Enter the path to the file: " FILEPATH
eval FILEPATH=$FILEPATH

如果我这样输入:

Enter the path to the file: ~/Desktop/Hello\ My\ Name\ is\ Oliver/

然后我得到以下输出(调试模式下的bash):

Enter the path to the file: ~/Desktop/Hello\ My\ Name\ is\ Oliver/
+ eval 'FILEPATH=~/Desktop/Hello My Name is Oliver/'
++ FILEPATH=/Users/Oliver/Desktop/Hello
++ My Name is Oliver/

当路径中有特殊字符时,我也有类似的问题。

我能做些什么来解决这个问题?

编辑: eval将别名更正~为正确的路径。

4

1 回答 1

2

如果您只需要扩展~,则执行以下操作会更安全

FILEPATH=${FILEPATH/\~/$HOME}

这也将使变量保持在一起。

于 2012-12-18T17:51:21.513 回答