Bash

如果目前目錄的路徑中有空格,則無法使用 pwd 循環文件

  • January 12, 2020

我創建的 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

引用自:https://unix.stackexchange.com/questions/561769