将URL变量传递给“打开”命令时出现双斜杠问题

时间:2018-06-25 07:35:12

标签: bash macos

我有一个存储在变量中的URL值,我想在默认的Web浏览器中显示它。尝试执行此操作时,“ open”命令不会将其识别为有效的URL,因为协议前缀后的双斜杠(“ //”)被替换为一个斜杠。如何防止这种替换?

users-MacBook-Pro:~ user$ echo "$invurl"
"https://xxx.xxx.com/projects/1291644-xxxv/builds/8504742/invite"
users-MacBook-Pro:~ user$ 
users-MacBook-Pro:~ user$ 
users-MacBook-Pro:~ user$ 
users-MacBook-Pro:~ user$ 
users-MacBook-Pro:~ user$ open "$invurl"
The file /Users/user/"https:/xxx.xxx.com/projects/1291644-xxxv/builds/8504742/invite" does not exist.
users-MacBook-Pro:~ user$ 

1 个答案:

答案 0 :(得分:0)

此问题与斜杠无关,与包含$invurl引号的"有关! echo不应输出引号;因为它输出引号,所以这意味着您的URL实际上是"https://...",包括引号。这导致它不以https://开头,这导致它不被解释为URL。外壳程序正在当前目录中寻找一个名为"https:的目录,并将双斜杠标准化。