Confronta string sullo script di shell

Sto creando uno script per controllare i requisiti relativi a VM in uno dei miei clienti. La prima parte dello script è controllare se il sistema operativo è virtuale o less. Per raggiungere questo objective creo il seguente script. Il problema è che anche il sistema è virtuale non funziona, voglio dire il test se non funziona !!! Qualcuno può aiutare e dire se ho fatto qualcosa di sbagliato (sono principiante nello script di shell e probabilmente è qualcosa di sbagliato).

CHECK_SYSTEM=`dmidecode | grep -i "Product Name: VMware Virtual Platform"` if [ "$CHECK_SYSTEM" = "Product Name: VMware Virtual Platform" ] ; then printf "%s\n" "The system is Virtual" else printf "%s\n" "The system is not Virtual" exit 192 fi 

  • Come posso eseguire una function bash con sudo?
  • Nessuna applicazione di shell e di avvio per l'accesso
  • script di shell Linux: come spostare tutte le sottocartelle con un nome specifico?
  • Lo script Bash funziona da prompt ma non da cron
  • Individuare i dispositivi all'interno di un edificio
  • C'è qualche motivo per utilizzare bash su zsh?
  • 2 Solutions collect form web for “Confronta string sullo script di shell”

    Utilizza echo per ispezionare la string $CHECK_SYSTEM restituita dal tuo command, non è quello che pensi sia. Dovrai elaborarla ulteriormente per rimuovere un certo spazio.

    È ansible trovare il command virt-cosa più utile se è installato nel sistema ad esempio

     # virt-what vmware 

    o

     # virt-what kvm 

    virt-ciò che è uno script di shell in modo da poter aggiungere facilmente una copia agli script di installazione.

    Si noti inoltre che è generalmente preferito utilizzare $(...) piuttosto che indietro in questi giorni.

    @Iain è corretto che questo script probabilmente non sta facendo quello che ti serve, ma in generale se stai cercando di confrontare le stringhe che manchi un equalsign, probabilmente functionrebbe meglio:

     if [ "$CHECK_SYSTEM" == "Product Name: VMware Virtual Platform" ] ; then 

    Vedi questo thread eccellente per ulteriori informazioni: https://stackoverflow.com/questions/2237080/how-to-compare-strings-in-bash-script

    Suggerimenti per Linux e Windows Server, quali Ubuntu, Centos, Apache, Nginx, Debian e argomenti di rete.