我目前從外部硬盤驅動器上運行的Archlinux,所以我試圖讓一個腳本在bash,讓我改變視頻驅動程序,而無需通過配置文件瀏覽每次我從另一臺計算機的啓動時間。Bash:IF和ELSE,比較和邏輯OR門?
我用NVIDIA或暴發戶在我的臺式電腦,但英特爾當我在我的女朋友的筆記本電腦。因此,我一直在與SED一個bash腳本,將輸出電流驅動器被用於一個名爲$ VCARD變量,而我想換到一個將是腳本($ 1第一個參數,然後)。
我的問題是,我想使這個安全的,這樣我就不會意外地交換了持有NVIDIA,暴發戶或英特爾東西,這不是這三根弦的弦。我認爲最好的做法是進行一系列if-else比較,如下所示。
if [ "$1" = "$VCARD" ]
then
echo "Already using $VCARD driver."
else
if [ "$1" = "nouveau" or "intel" or "nvidia" ] #This is the line that concerns me.
then
sed -i -e "7s#\(nouveau\|intel\|nvidia\)#$1#" /etc/X11/xorg.conf.d/10-monitor.conf
echo "New driver is now $1."
else
echo "You don't want to put that string there. (try nouveau, intel or nvidia)"
fi
fi
當你想適應中間的邏輯或門時條件是如何工作的?
PD:是的,我使用「#」 S作爲分隔符的sed命令,我希望這不是任何人的眼中釘。
''||是邏輯或許多其他編程語言 – karakfa
使用帶'[]正規'test' ''不適用於'||'和'&&'。爲了使用這些,你需要'[['和']]'。在單個方括號內,可以使用'-a'作爲AND,'-o'作爲OR。 – Filkolev
洋蔥頭,您的示例直到我爲該代碼添加了雙括號後才適用於我。不過,非常感謝我指出了正確的方向! –