我一直在尝试找到一个有效的正则表达式来仅过滤掉 shell 脚本中的变量,但无法过滤。我不是在谈论实际变量,而是在谈论创建它的字符串。作为一个例子,我一直试图egrep
从这个脚本中取出变量。
#!/bin/bash
flavor=${1:-dzen2}
function gmail() {
while true
do
inbox_count=$(wget -q -O- --auth-no-challenge --user=something@gmail.com --password=something 'https://mail.goog$
echo "Gg:$inbox_count"
sleep 60
done
}
function weather() {
while true
do
weather_stat=$($HOME/.config/i3/./weather.sh)
echo "F$weather_stat"
sleep 900
done
}
function time_date() {
while true
do
klocka=$(date +'%A den %d %B v%V %H:%M')
echo "S$klocka"
sleep 10
done < <(echo)
}
bspc control --put-status
xtitle -sf "T%s" > "$PANEL_FIFO" &
weather > "$PANEL_FIFO" &
gmail > "$PANEL_FIFO" &
time_date > "$PANEL_FIFO" &
case "$flavor" in
bar)
cat "$PANEL_FIFO" | .config/bspwm/panel_bar | bar
;;
dzen2)
. .config/bspwm/panel_colors
PANEL_HEIGHT=14
FONT_FAMILY='Dejavu Sans'
FONT_SIZE=9
cat "$PANEL_FIFO" | .config/bspwm/panel_dzen2 -f "$FONT_FAMILY" -s "$FONT_SIZE" | \
dzen2 -h $PANEL_HEIGHT -dock -ta l -title-name panel -fn "${FONT_FAMILY}:pixelsize=${FONT_SIZE}" \
-fg "$COLOR_FOREGROUND" -bg "$COLOR_BACKGROUND"
;;
esac
我的 Nano 着色主题需要这个。到目前为止,我一直在使用 "^[A-Za-z0-9 ].*="
which 获得一些但不是所有的变量。如果我做类似"[A-Za-z0-9 ].*="
的事情需要很多。我认为可能是其他变量,例如klocka=
以制表开头..但未能成功解决它。
我希望它过滤掉等号之前的变量。像这样FONT_SIZE=
,我可以在 Nano 中主题化该部分。我需要正则表达式而不是 sed 或 awk,因为那是 Nano 中的语法。