【发布时间】:2019-01-24 17:14:53
【问题描述】:
在我的脚本中,我要求用户指定路径。因为我在 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 -pcommand 下回显$working_dir:
read -p "Please, type/paste the working path (folder) you wish to link this scripts: " working_dir
echo $working_dir
输出这个:
为什么反斜杠消失了?我的逻辑认为B 和G 也应该被转义,还是我错了?
【问题讨论】:
-
"${home//\\//}"应该可以正常工作。declare -p home的输出是什么? -
而不是
<some of the pipe I typed before>,如果不是太大,请准确显示您尝试过的内容以及setup.sh的其余部分。该错误甚至看起来与您所质疑的操作没有任何关系,但很难说。 -
天哪,@anubhava 我以为问题出在替换上。是在输入。我将编辑整个问题。
-
例如,输入
bash提示符:x=\\a\\b\\c ; x=$(echo "$x" | tr '\\' '/'); echo $x产生/a/b/c。