反斜杠从用户输入中消失(读-p)

时间:2019-01-24 17:14:53

标签: bash replace backslash

在我的脚本中,我要求用户指定路径。因为我在Windows上,所以想将所有\替换为/。这将是一件容易的事,但是我遇到了一些麻烦:

read -p "Please, type/paste the working path (folder) you wish to link this scripts: " working_dir
  

我已经按照答案回答了:

     

https://stackoverflow.com/a/6853452/3286975

     

tr '\\' '/'

     

https://superuser.com/a/1068082/634144

     

home_mf="${home//\\//}"

     

https://stackoverflow.com/a/50220624/3286975

     

sed 's/\\/\//g'

     

但是我没有运气。这就是我要做的:

working_dir=$(echo "$working_dir" | <some of the pipe I typed before>)
echo $working_dir

编辑:

所有引用的文本对于该问题都没有用。我以为问题出在这里。但是在read -p命令下回显$ working_dir:

read -p "Please, type/paste the working path (folder) you wish to link this scripts: " working_dir
echo $working_dir

输出:

...

为什么反斜杠消失了?我的逻辑认为BG也应转义,否则我错了?

1 个答案:

答案 0 :(得分:3)

您要使用-r的{​​{1}}开关将不允许反斜杠转义任何字符(如read所述)。

这将起作用:

help read