簡體   English   中英

復制文件:名稱包含空格

[英]Copy File: Name Contains Spaces

我有一個大型 shell 腳本來處理我的每個 Solaris 系統的文件。

一開始,腳本會創建一個變量 FILENAME 有時人們會創建包含空格的目錄/文件。 例如

/users/ldap/Anukriti's System Backup/BACKUP/workspace/BP8/scripts/yui/editor/simpleeditor.js

后來在我運行的腳本中

cp $FILENAME $DESTDIR/

您可以想象這總是失敗,因為以下內容無效。

cp /users/ldap/Anukriti's System Backup/BACKUP/workspace/BP8/scripts/yui/editor/simpleeditor.js $DESTDIR

我曾嘗試將變量放在引號中,但這不起作用。 我之前使用過帶有 -exec 選項的 find,但對於這種情況,這並不是一個真正的選項,尤其是因為 Solaris 不支持 -wholename 或 -path 選項

我可以在這里做什么?

你只需要用引號保護變量:

cp "$FILENAME" "$DESTDIR"

筆記

不要使用單引號' ,變量不能以這種方式擴展。

看起來我需要使用花括號進行變量擴展和雙引號

cp "${FILENAME}" $DESTDIR

確保

  • $DESTDIR存在
  • 是一個目錄
  • 是的,對兩個變量都使用雙引號並去掉尾隨的/

你可能不相信,但那是你的問題。 :-)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM