Bash
如果目前目錄的路徑中有空格,則無法使用 pwd 循環文件
我創建的 bash 腳本中有以下程式碼。當我從路徑中沒有空格的目錄執行它時,它會按預期工作,但是如果我從帶有空格的目錄執行它會失敗。我很確定我需要以某種方式逃避它,但我嘗試過的任何方法似乎都不起作用。
for file in `pwd`/* do echo file:$file done
“失敗”是指如果我從路徑“~/dir 1/test”執行命令,它將回顯以下內容:
file: ~/dir file: 1/ file: test
我希望它列出目錄中的文件(如果目前目錄中沒有空格,它會這樣做):
file: file 1 file: file 2 file: file 3
請注意,如果目前目錄中包含空格,則這只是一個問題,其中包含空格的文件處理得很好。
我在這裡閱讀了幾個類似的範例,例如為什麼我的 shell 腳本會因空格或其他特殊字元而窒息?並遍歷名稱中帶有空格的文件?但我看不出它們如何(如果它們相關)適用於我的具體範例。
感謝 Paulo Tomé,我需要將其更改為以下內容:
for file in "$(pwd)"/* do echo file:"$file" done