if ! -a $logfile
then
->
Bzgl. Quoting
Code: Alles auswählen
$ fil=; if [ -a $fil ]; then echo hallo; fi
hallo
$ fil=; if [ -a "$fil" ]; then echo hallo; fi
Bei Nicht-Quoting wäre das Ergebnis also eigentlich falsch.
Nach 'man test', 'man bash' ist '-a datei' eigentlich ein bashism,
Bei /usr/bin/test wäre es für 'EXPR -a EXPR' (im Sinne von "wahr and wahr")
(Und obwohl es hier scheinbar funktioniert.).
Wegen der Klarheit würde ich '-f datei' bevorzugen.
--------------------------------------------------------------------
if -n prg_pid
then
->
Obige [[]] sind bashism.
Bei einfachen [] müßte gequotet werden
wenn prg_pid zBsp. mehrere Zahlen enthält.
Wobei ich mir bei den -n/-z-Test immer etwas unsicher bin.
Daher bevorzuge ich den klassischen POSIX-walkaround
--------------------------------------------------------------------
prgstart=env WINEPREFIX="/home/maik/.wine" wine "/home/maik/.wine/drive_c/Program Files/CleanDC++/CleanDC.exe" > /dev/null
...
$prgstart
eher ->
Code: Alles auswählen
prgstart='env WINEPREFIX="/home/maik/.wine" wine "/home/maik/.wine/drive_c/Program Files/CleanDC++/CleanDC.exe" > /dev/null 2>&1'
...
$prgstart
oder
Code: Alles auswählen
prgstart="env WINEPREFIX=\"/home/maik/.wine\" wine \"/home/maik/.wine/drive_c/Program Files/CleanDC++/CleanDC.exe\" > /dev/null 2>&1"
...
$prgstart
da jetzt noch Variablen möglich wären.
Am besten halte ich für den Zweck aber eine function
Code: Alles auswählen
prgstart() {
env WINEPREFIX="$HOME/.wine" wine "$HOME/.wine/drive_c/Program Files/CleanDC++/CleanDC.exe" > /dev/null 2>&1
}
...
prgstart