O que há de errado com este código Zenity?

0

O que há de errado com esse código?

#!/bin/bash
ARCH=$(uname -m)
if ["$ARCH" = "i686"]; then
 zenity --info --title="Architechture Checker" --text="Your Architechture is 32-Bit"
if ["$ARCH" = "x86_64"];then
 zenity --info --title="Architechture Checker" --text= "Your Architechture is 64-Bit"
    
por Lincity 16.04.2011 / 16:28

2 respostas

9
  1. Nenhum "fi" correspondente para o "if" s

  2. Você precisa colocar espaços em branco em torno de "[" e "]"

  3. Espaço após "--text=" faz com que o parâmetro seja perdido.

Versão de trabalho:

#!/bin/bash
ARCH=$(uname -m)
if [ "$ARCH" = "i686" ]; then
 zenity --info --title="Architechture Checker" --text="Your Architechture is 32-Bit"
fi
if [ "$ARCH" = "x86_64" ]; then
 zenity --info --title="Architechture Checker" --text="Your Architechture is 64-Bit"
fi
    
por Alistair Buxton 16.04.2011 / 16:44
4

Ou, usando o caso em vez disso (e também uma função para encurtar um pouco).

#!/bin/bash

zinfo() { zenity --info --title="Architecture Checker" --text="$1"; }

case $(uname -m) in
  i686) zinfo "Your architecture is 32-bit" ;;
  x86_64) zinfo "Your architecture is 64-bit" ;;
  *) zinfo "Your architecture is unknown to me" ;;
esac
    
por geirha 16.04.2011 / 17:52