我們開始使用shellcheck來檢查我們的腳本錯誤/警告,引述未加引號的變量在shell腳本
目前常見的警告,我們在我們的所有腳本看到的是不帶引號的變量。
是否有任何腳本來糾正這些簡單的警告/錯誤?
我有低於該予用於更改$VAR
到${VAR}
sed -i -r 's:\$([_a-zA-Z?][_a-zA-Z0-9]*):${\1}:g' <scriptname>
我修改它如下命令,
sed -i -r 's:\$([_a-zA-Z?][_a-zA-Z0-9]*):"${\1}":g' <scriptname>
上述命令工作正常時的變量是未引用的,但是當它們被例如引"$VAR"
它更改爲""${VAR}""
任何建議是否繼續使用sed
或更好地編寫腳本來做到這一點?
有什麼特別的建議嗎?
檢查是否有報價。 ''s /「* yadda」* /「yadda」/'' – 123
引用變量是一個基本的,有用的事情要記住。如果你忘了它,只是依靠一個小腳本來完成它,你正在接近一個風險:腳本失敗的風險,你認爲其他事情可能是錯誤的,忘記引用變量的原則並沒有考慮到的風險。這就像製作一個腳本來固定你的腰帶一樣:我認爲最好記住在坐下飛機時做這件事。 – fedorqui
@fedorqui問題是我們開始工作的時候,我們都是新的,在這期間我們已經有所改進,但是現在我們有許多腳本需要修改,我們會審查它們,但是改變每一行都是無聊的,所以想到使用腳本來做到這一點。 – AnkurTank