3
我正在編寫一個bash腳本,它在從目錄B
運行時鏡像目錄B
內的目錄A
的目錄結構。處理查找返回的文件路徑中的單引號
目前,我這樣做如下:
#!/bin/bash
dirify() {
echo $1
}
export -f dirify
find "../test" -type d -exec bash -c "dirify '{}'" \;
我從目錄B
運行此腳本,../test
是目錄A
。 幸運的是,我用來測試的目錄包含名稱中包含'
的文件夾。當運行該腳本時,bash提供了以下錯誤,當它到達這些目錄:
> bash: -c: line 0: unexpected EOF while looking for matching `''
> bash: -c: line 1: syntax error: unexpected end of file
(注意,第0行和第1行指的是線dirify()
函數內)
的更簡化的方式示出了該問題如下:
find "../test" -exec bash -c "echo '{}'" \;
該示例產生相同的誤差。
無論如何,這是一個問題,因爲在生產中,我不能假定文件路徑將不包含'
字符。
無論如何圍繞這個問題?
太棒了!謝謝。你能簡單地解釋一下這個語法是如何工作 – finiteloop
當通過'-c'運行腳本時,bash會接受附加參數並從'$ 0'開始分配它們。 –
謝謝!很有幫助。 – finiteloop