0
我想從用戶輸入的字符串生成文件名,並確保它安全地轉義。轉義文件名斜槓
例如,如果用戶輸入/usr/bash
輸出將是\/usr\/bash
並且如果輸入是The great theater
輸出是The\ great\ theater
。
我想從用戶輸入的字符串生成文件名,並確保它安全地轉義。轉義文件名斜槓
例如,如果用戶輸入/usr/bash
輸出將是\/usr\/bash
並且如果輸入是The great theater
輸出是The\ great\ theater
。
您確定需要這樣做嗎?這是一種代碼味道。很可能有更好的方法來做任何你想做的事情,而不是改變你的輸入。當您使用它們正確地引用您的變量已經足夠:
$ file='some file name.txt'
$ touch "$file"
$ ls "$file"
some file name.txt
如果你堅持,雖然,使用%q
格式的printf:
$ str='The great theater'
$ printf '%q\n' "$str"
The\ great\ theater
$ escaped=$(printf '%q' "$str")
$ echo "$escaped"
The\ great\ theater
注意,因爲他們不是活得這不會逃避斜線通常是特殊字符。
你真的*試圖做什麼? – 2011-02-11 04:11:15
-1沒有詳細說明需要轉義的內容,更重要的是,爲什麼。 – chepner 2012-06-17 01:06:45