Suas instruções if
sequenciais parecem um ajuste mais natural para case
:
case "$cate" in
*Network*)
echo $commandline >> menu.Network
;;
*Settings*)
echo $commandline >> menu.Settings
;;
esac
Estou fazendo um script para ler arquivos em / usr/share/applications
para gerar um menu para IceWM . Aqui está um pouco do meu código:
file = nm-connection-editor.desktop
name = $((grep -m 1 "Name=" $file) | sed 's/Name=//g')
icon = $ ((grep Icon= $file) | sed 's/Icon=//g')
execu = $ ((grep -m 1 Exec= $file) | sed 's/Exec=//g')
commandline = "prog $name $icon $execu"
cate = $(grep -m 1 Categories $file)
echo $cate result in:
Categories=GNOME;GTK;Settings;X-GNOME-NetworkSettings;
if [ $(echo $cate |grep Network) ]; then echo $commandline >> menu.Network; fi
if [ $(echo $cate |grep Settings) ]; then echo $commandline >> menu.Settings; fi
O problema é que $commandline
aparece nas duas categorias.
Eu quero que apareça apenas em Configurações
Acho que em uma lista de palavras: Configurações do utilitário de rede de jogos do Office System ...
e selecione (de $cate
) o mais próximo do começo da linha, mas como?
Suas instruções if
sequenciais parecem um ajuste mais natural para case
:
case "$cate" in
*Network*)
echo $commandline >> menu.Network
;;
*Settings*)
echo $commandline >> menu.Settings
;;
esac