我正在处理将文件位置传递给 scp 子进程的 python 脚本。这一切都很好,但我处于这样一种情况,我可能最终将一个路径与一个文件名连接起来,这样路径中就有一个双 ' /。我知道 bash 不关心您是否有多个文件分隔符,但我想知道如何纠正它。是 bash 去掉了额外的/s 还是真的无关紧要?
我问是因为它会为我节省几行代码来/在连接时检查额外的s。我知道这没什么大不了的,但我也很好奇。我有一个包含行cd //usr(而不是cd /usr)的 bash 脚本,这似乎暗示/在路径中使用多个s可能很重要
不要cd dir/subdir/和cd dir/subdir//意味着在UNIX一样吗?
后期会解决吗?不然有什么特别的意义吗?
cd、mv、ls 或任何命令。
今天写我的shell脚本的时候。
一个问题突然出现在我的脑海中。
因为cd /target_dir和cd /target_dir/两者都有效。
我应该在 shell 脚本中的路径变量末尾添加斜杠吗?
比如LOG_PATH=/data/nginx/logs对LOG_PATH=/data/nginx/logs/。
我在谷歌上做了一些粗略的搜索,但没有找到关于这个的讨论,也许它太基本了?
目前,我真的很难决定选择哪种风格。
但我更喜欢LOG_PATH=/target_dir/风格。
因为当我用 bash 进行自动完成时,它会用斜杠弹出我的结果。
您对此有何看法,为什么?
在 稳健地构建路径中,
提出的解决方案包括:
shopt -s extglob; dir="${dir//+(\/)//}"
Run Code Online (Sandbox Code Playgroud)
有人可以为我解释(解析)吗?我明白它在做什么,但不明白语法是如何工作的。