cut -c não funciona no meu arquivo .sh [closed]

0

Eu tentei os seguintes comandos

cut -c-11 ifshell.sh 

cat ifshell.sh | cut -c-11 ifshell.sh 

cat ifshell.sh | awk '{print $1} | cut -c-11 ifshell.sh

Mas toda vez que recebo o conteúdo completo do arquivo .sh. Esses comandos funcionam perfeitamente em arquivos .txt. O objetivo principal é extrair o primeiro caractere 11 do script "#! / Bin / bash" para verificar se o arquivo é realmente um script bash bin.

    
por Ivan Janev 19.05.2016 / 16:27

2 respostas

0

Você também pode usar o comando padrão file :

[PRD][]user@localhost:~ 17:21:30
$ head -n 1 setproxymkt.sh 
#!/bin/bash
[PRD][]user@localhost:~ 17:21:38
$ file setproxymkt.sh 
setproxymkt.sh: Bourne-Again shell script, ASCII text executable
    
por 19.05.2016 / 17:22
0

Pode ser que o seguinte seja mais adequado ao que você está tentando realizar:

# #// FILE could be a for-loop as well for example.
FILE="bash_scropt.sh" ;
if grep '#!/bin/bash' $FILE 1>/dev/null ; then
    printf "$FILE bash-script\n" ;
else
    printf "> $FILE -- NOT bash\n" ;
fi ;

Você também pode misturar isso com a sugestão @netmonk, onde um grep na cabeça seria mais conciso, por exemplo:

FILE="bash_scropt.sh" ; if head -n 1 $FILE | grep '#!/bin/bash' 1>/dev/null ; then printf "$FILE bash-script\n" ; else printf "> $FILE -- NOT bash\n" ; fi
    
por 19.05.2016 / 17:35