-1
我有以下腳本保存在我的道路「lspkg」:爲什麼bash不能在文件路徑中轉義空格或引號?
#!/bin/bash
args=("[email protected]")
for item in ${args[@]}; do
echo "$item"
done
當我運行lspkg /absolute/path/to/file
,它按預期工作,打印路徑。但是,下列行爲造成我的麻煩一個很好的協議:
擺脫空間的路徑並沒有真正轉義空格:
$ lspkg /absolute/path/to/file\ with\ spaces
/absolute/path/to/file\
with\
spaces
把路徑用引號不作bash的把它看成單個字符串:
$ lspkg "/absolute/path/to/file with spaces"
"/absolute/path/to/file
with
spaces"
這是爲什麼,這個問題怎麼解決?
嘗試在'$ {args [@]}周圍加引號' – inetknght
這個問題的根源實際上是腳本在我的機器上運行的方式,但我發佈的代碼仍然有錯誤。 – lowtex