Нумерация параметров в сценарии bash

У меня есть скрипт bash с одним параметром, который отлично работает:

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

Но теперь мне нужно использовать другой параметр, который должен быть независимым от первого. Это означает, что иногда может существовать парам, а может и нет.

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

Этот скрипт должен работать, если оба параметра существуют. Но как решить проблему, когда мне не нужно передавать первый параметр?

1
задан 14 September 2015 в 16:21

1 ответ

Хотя я считаю, что лучше использовать опции в этом случае (например, -o и -k), вы можете проанализировать параметры в начале вашего скрипта и установить переменные для каждого из них. то есть: ^!d0]

#!/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
0
ответ дан 23 May 2018 в 17:28

Другие вопросы по тегам:

Похожие вопросы: