我无法将内部带有空格的路径作为参数传递。
keyLocation="/Users/vladimir/Google\ Drive/file.pem"
ssh -i $keyLocation [email protected];
这给了我以下错误:
警告:身份文件/Users/vladimir/Google 无法访问:没有此文件或目录。
基本上,在分配 keyLocation 本身之后,它变为 "/Users/vladimir/Google Drive/file.pem" (否),因此当它尝试使用 $keyLocation 作为参数时,它会将其传递为
ssh -i /Users/vladimir/Google Drive/file.pem [email protected]
我怎样才能让 ssh 命令将其识别为包含空格的路径?
答案1
你搞混了一点。引号内的空格不需要转义。当你扩展包含空格的变量时,一定要用引号括起来。
keyLocation="/Users/vladimir/Google Drive/file.pem"
ssh -i "$keyLocation" [email protected]
答案2
Frank 在评论中回答了这个问题:
$"$keyLocation"
谢谢,弗兰克。
答案3
对于我来说,将路径存储到变量中并没有起到作用。
另一种方法是使用符号链接
ln -s ~/Google\ Drive/ Drive
之后你可以使用
ssh -i ~/Drive/file.pem [email protected]
希望这对别人有帮助!