terminal não parará de solicitar entrada (lição de casa)

2

Sou extremamente novo no sistema operacional UNIX e, portanto, tenho algumas dificuldades em meu dever de casa.

O que eu estou tentando realizar é usar if / then statements dentro de um alias. aqui está o código que escrevi ...

alias getname='read filename'


alias vfile='getname; if [ ! -f $filename ]; then echo "Irregular file";'

Eu não recebo erros quando eu faço isso para testes, mas quando executo o comando, ele não para de solicitar uma entrada assim ...

> 1a.out
>
>
>
>
> -bash: syntax error: unexpected end of file

como você pode ver, só parará quando eu acertar o controle d. Não sei por que está fazendo isso e qualquer ajuda fornecida seria muito apreciada.

Além disso, eu estou completamente usando uma função de shell ou script seria muito mais eficiente, mas eu sou obrigado a usar um alias para a atribuição.

    
por mike 12.10.2017 / 23:37

1 resposta

0

Como mencionei no comentário acima, você está perdendo um fi para seu if :

$ type getname
getname is aliased to 'read filename'

$ type vfile
vfile is aliased to 'getname; if [ ! -f $filename ]; then echo "Irregular file"; fi'

Então:

$ vfile
doesNotExist
Irregular file
$ vfile
/etc/passwd
$
    
por 13.10.2017 / 00:07

Tags