我打算将一大段shell代码放在〜/ .zshrc文件中。我原本希望原始内容会显示在〜/ .zshrc文件中,但是我喜欢该文件的原因是内容已“呈现”。我期望文件中包含原始内容。
我试图在整个内容中添加一个引号。但这不起作用,因为内容中同时包含单引号和双引号。
以下是我的代码段:
cat << EOF > ~/.zshrc
zsh_wifi_signal(){
local output=$(/System/Library/PrivateFrameworks/Apple80211.framework/Versions/A/Resources/airport -I)
local airport=$(echo $output | grep 'AirPort' | awk -F': ' '{print $2}')
if [ "$airport" = "Off" ]; then
local color='%F{black}'
echo -n "%{$color%}Wifi Off"
else
local ssid=$(echo $output | grep ' SSID' | awk -F': ' '{print $2}')
local speed=$(echo $output | grep 'lastTxRate' | awk -F': ' '{print $2}')
local color='%F{black}'
[[ $speed -gt 100 ]] && color='%F{black}'
[[ $speed -lt 50 ]] && color='%F{red}'
echo -n "%{$color%}$speed Mbps \uf1eb%{%f%}" # removed char not in my PowerLine font
fi
}
EOF
〜/ .zshrc中的内容类似于:
zsh_wifi_signal(){
local output= agrCtlRSSI: -53
agrExtRSSI: 0
agrCtlNoise: -92
agrExtNoise: 0
state: running
op mode: station
lastTxRate: 702
maxRate: 867
lastAssocStatus: 0
802.11 auth: open
link auth: wpa2-psk
BSSID: 8c:a6:df:18:ac:5f
SSID: 99cloud_5G
MCS: 8
channel: 149,80
local airport=
if [ "" = "Off" ]; then
local color='%F{black}'
echo -n "%{%}Wifi Off"
else
local ssid=
local speed=
local color='%F{black}'
[[ -gt 100 ]] && color='%F{black}'
[[ -lt 50 ]] && color='%F{red}'
echo -n "%{%} Mbps \uf1eb%{%f%}" # removed char not in my PowerLine font
fi
这似乎是受人谴责的。
我期待〜/ .zshrc文件中的类似内容
zsh_wifi_signal(){
local output=$(/System/Library/PrivateFrameworks/Apple80211.framework/Versions/A/Resources/airport -I)
local airport=$(echo $output | grep 'AirPort' | awk -F': ' '{print $2}')
if [ "$airport" = "Off" ]; then
local color='%F{black}'
echo -n "%{$color%}Wifi Off"
else
local ssid=$(echo $output | grep ' SSID' | awk -F': ' '{print $2}')
local speed=$(echo $output | grep 'lastTxRate' | awk -F': ' '{print $2}')
local color='%F{black}'
[[ $speed -gt 100 ]] && color='%F{black}'
[[ $speed -lt 50 ]] && color='%F{red}'
echo -n "%{$color%}$speed Mbps \uf1eb%{%f%}" # removed char not in my PowerLine font
fi
}
我也开始在myrep
中发布问题