C Argumento do shell se Else Loop

0

Sou novo na programação do C -Shell. Estou escrevendo um script que, se um ou mais argumentos forem inseridos após o script, ele será exibido. se nenhum argumento for inserido, ele dirá "Por favor, insira um ou mais argumentos".

Por alguma razão, meu script fará o primeiro, mas não executará a tarefa de argumento 0 no script. O que estou fazendo de errado? É apenas um erro lógico?

foreach arg ( $* )
        if ( $#arg == 0 ) then
                echo "Please enter one or more arguments."
        else if ( $#arg > 0 ) then
                echo "Found argument = $arg"
        endif
end
    
por Tanner Di Bella 24.07.2015 / 02:39

1 resposta

1

Se você não tem argumentos para o seu script, então ele não fará nada, pois $ * não será igual a nada.

Seu script é efetivamente:

foreach arg (  )
   echo "Nothing to see here"
end

O que faria mais sentido:

# check how many arguments passed to script
if ( $#argv == 0 ) then
     echo "Please enter one or more arguments."
     exit 1
endif

foreach arg ( $* )
    echo "Found argument = $arg"
end
    
por 24.07.2015 / 03:06

Tags