Parâmetros numeração no script bash

0

Eu tenho um script bash com um parâmetro que é executado corretamente:

if [ "$1" == "output" ]
        then
        echo "strting with output"
        else
        echo "without output"
fi

Mas agora preciso usar outro parâmetro que deve ser independente do primeiro. Isso significa que, às vezes, o param pode existir e talvez não.

if [ "$2" == "kill" ] 
 then killall myproc 
fi
if [ "$1" == "output" ]
        then
        echo "strting with output"
        else
        echo "without output"
fi

Este script deve funcionar se ambos os parâmetros existirem. Mas como resolver problema quando não preciso passar primeiro param?

    
por vico 14.09.2015 / 15:21

1 resposta

0

Embora eu acredite que é melhor usar opções neste caso (ou seja, -o e -k), você pode analisar os parâmetros no início do seu script e definir variáveis para cada um. ou seja:

#!/bin/sh

for x in $@
do
  case $x in
    output)
      OUTPUT=True
      ;;
    kill)
      KILL=True
      ;;
  esac
done


if [ $OUTPUT ]
then
  echo output is set
fi

if [ $KILL ]
then
  echo kill is set
fi
    
por user448115 14.09.2015 / 17:53