chmod u-x problema na instrução case no shell script

-2

Euquerodardireitosaumarquivousandoummenu(exec,write,read).SevocêolharatentamenteeuleioovalorB(onomedoarquivo),entãoeuusoafunçãocaseparafazerafunçãodeleitura1)exec/2)write/3)paraessearquivocomoutrocase'.

Eutenhoumerronalinha:

chmodu-x$b" ; ls -l ; 

quando executo o .sh . Por quê? Vou anexar uma captura de tela com o erro.

!

    
por Ciobanu Rares 13.05.2015 / 20:33

1 resposta

2

Sua declaração case syatax não está correta.

Na declaração case , cada par de ação padrão precisa ser finalizado em ;; , mas você usou um único ; (após ls -l ) que é análogo a nova linha neste caso. Assim, o shell continua com o mesmo par de ação padrão na linha seguinte, encontrou 2) e mostrou um erro de sintaxe.

A sintaxe correta seria:

case "$c" in 
          1) chmod u+x "$b"; ls -l ;;

Verifique este tutorial para ter mais ideias sobre a declaração case .

Observe também que não deve haver espaços entre a sintaxe do bit de permissão, ou seja, você precisa colocar u+x , não u + x .

    
por heemayl 13.05.2015 / 20:46