Ciao, sono nuovo nello scripting di bash, ho appena scritto questo semplice programma ma sta generando un errore.
#!/bin/bash
os=`uname -o`
echo $os
if ["$os"=="GNU/Linux"] ; then
echo "Linux"
else
echo "Windows"
fi
Usando == o -eq per entrambi i casi sto ottenendo il seguente errore e sta stampando il condn else.
./ostype.sh: line 3: [GNU / Linux == GNU / Linux]: Nessun file o directory di questo tipo
finestre
Versione di Bash: GNU bash, versione 3.2.48 (1) -release (x86_64-suse-linux-gnu)
risposte:
19 per risposta № 1provare
if [ "$os" = "GNU/Linux" ]
nota gli spazi e il singolo =
.
[
è in realtà un programma, e il resto sono argomenti!
5 per risposta № 2
Uso =
per il confronto delle stringhe. Vedere: http://tldp.org/LDP/abs/html/comparison-ops.html
Inoltre, dovrebbe esserci uno spazio attorno alle parentesi quadre e all'operatore di confronto, ad es.
if [ "$os" = "GNU/Linux" ]; then
^ ^ ^ ^ ^
| | | | |
-------------------- (need spaces here)