как сделать оператор case switch в csh

Sugeriría reestructurar su lógica :poner el código "fallthrough" en una función en su lugar:

fallthrough() { echo 'fallthrough worked!'; }

for input in foo bar; do
    for var in 1 2; do
        echo "$input $var"
        case $input in
            foo)
                if (( var == 1 )); then
                    echo "falling through"
                    fallthrough
                else
                    echo "not falling through"
                fi
            ;;
            *) fallthrough;;
        esac
    done
done

salidas

foo 1
falling through
fallthrough worked!
foo 2
not falling through
bar 1
fallthrough worked!
bar 2
fallthrough worked!
1
05.07.2019, 17:47
1 ответ

Я рад видеть, что вы знаете о падениях C -Shell.

Вот тот же сценарий, преобразованный в оболочку C -(Edit:обновленный для вывода $usageв случаях отсутствия аргументов или более 1 аргумента):

#!/usr/bin/env csh

set usage="Usage: $0 {foo|bar}"

if ( $#argv != 1 ) then
  echo $usage
else
  switch ($argv[1])
  case 'foo':
    /path/to/foo.sh
    breaksw
  case 'bar':
    /path/to/bar.sh
    breaksw
  default:
    echo $usage
    breaksw
  endsw
endif
1
27.01.2020, 23:41

Теги

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