帶有空格的 Bash 引數不起作用,即使我在引數中使用引號
update_config_entry() {
echo
echo -e "${RED}CONFIG-UPDATE${NC} Ensure $1 is updated in $2"
if grep -Fx $1 $2; then
echo "$1 already exist in file $2"
else
echo $1 >> $2
fi
policystatus=$?
if [[ "$policystatus" -eq 0 ]]; then
echo -e "${GREEN}Remediated:${NC} Ensure $1 is updated in $2"
else
echo -e "${RED}UnableToRemediate:${NC} Ensure $1 is updated in $2"
fi
}
update_config_entry "install usb-storage /bin/true" /etc/modprobe.d/CIS.conf
錯誤:
grep: usb-storage: No such file or directory
grep: /bin/true": No such file or directory
“安裝 usb-storage /bin/true”應該是單個引數,但它將 install usb-storage /bin/true 作為單獨的引數傳遞。我做錯了什么,
其他地方推薦用引號括起來,我已經在做
關聯
Bash 腳本 GNU bash,版本 4.4.20(1)-release (x86_64-pc-linux-gnu)
uj5u.com熱心網友回復:
您忘記將論點參考到grep. 它應該是
grep -Fx "$1" "$2"
否則 grep 收到
grep -Fx install usb-storage /bin/true /etc/modprobe.d/CIS.conf
這意味著它被要求搜索檔案usb-storage。
uj5u.com熱心網友回復:
恐怕你的雙引號是不夠的。我嘗試了以下方法:
update_config_entry """install usb-storage /bin/true""" /etc/modprobe.d/CIS.conf
它看起來相當不錯。
uj5u.com熱心網友回復:
建議修復:
update_config_entry() {
echo
echo -e "${RED}CONFIG-UPDATE${NC} Ensure $1 is updated in $2"
if [[ $(grep -Fxc "$1" "$2") -ne 0 ]]; then
echo "$1 already exist in file $2"
else
echo "$1" >> "$2"
fi
policystatus=$?
if [[ "$policystatus" -eq 0 ]]; then
echo -e "${GREEN}Remediated:${NC} Ensure $1 is updated in $2"
else
echo -e "${RED}UnableToRemediate:${NC} Ensure $1 is updated in $2"
fi
}
update_config_entry "install usb-storage /bin/true" /etc/modprobe.d/CIS.conf
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/465448.html
上一篇:Google拒絕對HMS隱式PendingIntent漏洞進行補救更新
下一篇:如何在bash中的模式后裁剪文本
