[英]How to replace all white spaces in file names in GCP Cloud Storage?
[英]White spaces in file names not being recognized when 'exported' in Unix
在MacOS中,我創建的目錄名稱帶有空格。 當使用bash / Unix命令進行如下所示的導航時,它可以正常工作。
cd /Users/jdoe/"Box Sync"/Professional/"Classes Taken"
pwd
/Users/jdoe/Box Sync/Professional/Classes Taken
cd "/Users/jdoe/Box Sync/Professional/Classes Taken"
pwd
/Users/jdoe/Box Sync/Professional/Classes Taken
當我定義如下所示的環境變量時,相同的路徑名不起作用。 誰能解釋為什么不是
export CLASSES_TAKEN='"/Users/jdoe/Box Sync/Professional/Classes Taken"'
echo $CLASSES_TAKEN
"/Users/jdoe/Box Sync/Professional/Classes Taken"
$ cd $CLASSES_TAKEN
-bash: cd: "/Users/jdoe/Box: No such file or directory
export CLASSES_TAKEN=/Users/jdoe/"Box Sync"/Professional/"Classes Taken"
echo $CLASSES_TAKEN
/Users/jdoe/"Box Sync"/Professional/"Classes Taken"
cd $CLASSES_TAKEN
-bash: cd: /Users/jdoe/"Box: No such file or directory
但是,當我這樣做時,它會起作用:
export CLASSES_TAKEN="/Users/jdoe/Box Sync/Professional/Classes Taken"
cd "$CLASSES_TAKEN"
pwd
/Users/jdoe/Box Sync/Professional/Classes Taken
我的問題是在使用環境變量時如何避免使用引號( "$CLASSES_TAKEN"
)。 我想說cd $CLASSES_TAKEN
我檢查了很多帖子,但沒有找到解決我問題的答案。
我強烈不建議這樣做 ,但是您可以使cd
表現得像echo
,並且只需將多個參數與空格連接即可:
cd() { builtin cd "$*"; }
export CLASSES_TAKEN='/Users/jdoe/Box Sync/Professional/Classes Taken'
echo $CLASSES_TAKEN
cd $CLASSES_TAKEN
正如您所描述的那樣工作,但是有一些陷阱。 正確的方法是引用變量。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.