我正在嘗試使用xmodmap來交換大小寫和轉義。我把xmodmap ~/.Xmodmap
命令放在我的.zshrc
中。但是每當我啓動一個新的shell時,xmod設置就會再次交換。所以我試圖將xmodmap
命令封裝在一個檢查全局變量的條件中,但我無法讓它工作。在環境變量上使用條件編寫冪等shell腳本
if [ ! "$CAPS_MAPPED" = true ]; then # check if CAPS_LOCKED is empty
echo 'mapping'
xmodmap ~/dotfiles/.xmodmap # call xmodmap
export readonly CAPS_MAPPED=true # assign global var
fi
我嘗試不同的變化,但只是不明白做什麼,因爲我有shell腳本相當缺乏經驗。
所以這個解決方法至少打印「映射」?意思是,.zshrc進入這個「if」狀態? – fedorqui
當我刪除'!'時,它會打印'映射'。 –
從'man test'中,'-z'選項表示'STRING的長度爲零'。我不確定你在這裏有什麼打算,但可能只有'-z'應該是這樣。否則,你正在檢查的是相反的,這也是'-n' - >'STRING的長度不爲零'。 – fedorqui