在开始之前,请不要犹豫,我知道这个问题在这里和其他论坛上已经被问过很多次了,但是我无法让这个简单的Shell脚本起作用。

这是我的脚本:

#!/bin/bash

DEST=“/Volumes/Ext\ 1TB/Google\ Drive/Backup\ Ralph/mac”

echo dest is $DEST
cd $DEST


这是我的输出:

bash -x gdrive.sh
+ DEST='“/Volumes/Ext 1TB/Google Drive/Backup Ralph/mac”'
+ echo dest is $'?\200\234/Volumes/Ext' 1TB/Google Drive/Backup $'Ralph/mac?\200\235'
dest is “/Volumes/Ext 1TB/Google Drive/Backup Ralph/mac”
+ cd $'?\200\234/Volumes/Ext' 1TB/Google Drive/Backup $'Ralph/mac?\200\235'
gdrive.sh: line 6: cd: “/Volumes/Ext: No such file or directory


我尝试了很多组合,例如单引号或双引号或以反斜杠转义,或双引号以反斜杠转义

如果我在变量周围加上双引号,则输出将为您提供一些数字,如您在示例中所见。

有人知道转义引号的正确用法和组合是什么吗?

我希望有人能帮帮忙

问候,

拉尔夫

最佳答案

做就是了:

DEST="/Volumes/Ext 1TB/Google Drive/Backup Ralph/mac"

cd "$DEST"


您需要在cd行中加上引号,因为$DEST的值只是插入到命令行中,而没有引号的话会为cd产生4个参数:

cd $DEST


=>

cd /Volumes/Ext 1TB/Google Drive/Backup Ralph/mac


高温超导

附言我假设您的问题中的双引号“”只是一种自动更正的错字,并且您知道使用直引号“”

关于bash - 带有空格的Mac OS Shell脚本cd文件夹不起作用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/41988083/

10-14 03:27