expressão de teste - mensagem de uso [fechada]

0

Estou procurando uma expressão de teste com uma mensagem de uso. Quando eu insiro na linha de comando um arquivo como ./file eu preciso do script para parar e ecoar erro. Quando eu entro em ./file test eu preciso que o arquivo seja executado e digite o arquivo. Eu estou tendo dificuldade em usar a mensagem de expressão de teste. Até agora eu tenho isso e meio que faz o que eu quero, mas eu preciso verificar e ter certeza. / Teste de arquivo é realmente entrada para inserir o arquivo. se não for introduzido no comando corretamente, deve cuspir um erro e sair.

   if [$# -eq 0 ]
      then
           echo"error"
      exit 1
   fi
    
por jake 14.11.2015 / 19:54

1 resposta

5

[ é um comando; [$# não é. Você precisa separar um comando de seus argumentos:

if [ $# -eq 0 ]; then
    echo "error"   # Here, too
    exit 1
fi

Por acaso, você pode substituir todo esse bloco por uma expansão de parâmetro especial:

: ${1?error}

Se o primeiro parâmetro posicional não estiver definido (ou seja, não há parâmetros posicionais), imprima a mensagem após o parâmetro? e sair.

    
por 14.11.2015 / 20:00

Tags