Articles of bash

Como “cat << EOF” funciona no bash?

Eu precisava escrever um script para inserir input de várias linhas para um programa ( psql ). Depois de um pouco de googling, encontrei os seguintes trabalhos de syntax: cat << EOF | psql —params BEGIN; `pg_dump —-something` update table …. statement …; END; EOF Isso constrói corretamente a cadeia de várias linhas (de BEGIN; […]

Parar a expansão do caractere curinga do shell?

Existe alguma maneira de um programa de linha de comando compilado dizer ao bash ou csh que ele não deseja que nenhum caractere curinga em seus parâmetros seja expandido? Por exemplo, pode-se querer um comando shell como: foo * para simplesmente retornar o valor ASCII numérico desse caractere.

Os colchetes duplos ] são preferíveis a colchetes no Bash?

Um colega alegou recentemente em uma revisão de código que a [[ ]] construção deve ser preferida em relação a [ ] em construções como if [ “`id -nu`” = “$someuser” ] ; then echo “I love you madly, $someuser” fi Ele não podia fornecer uma justificativa. Existe um?

Como adicionar uma barra de progresso a um script de shell?

Quando o script no bash ou qualquer outro shell no * NIX, durante a execução de um comando que levará mais do que alguns segundos, é necessária uma barra de progresso. Por exemplo, copiando um arquivo grande, abrindo um arquivo tar grande. Que maneiras você recomenda para adicionar barras de progresso aos scripts de shell?

Como eu escrevo stderr para um arquivo usando o “tee” com um pipe?

Eu sei como usar tee para gravar a saída ( STDOUT ) de aaa.sh para bbb.out , enquanto ainda exibi-lo no terminal: ./aaa.sh | tee bbb.out Como eu poderia agora escrever STDERR para um arquivo chamado ccc.out , enquanto ainda está sendo exibido?

Como alterar a cor de saída do eco no Linux

Eu estou tentando imprimir um texto no terminal usando o comando echo. Eu quero imprimir o texto em uma cor vermelha. Como eu posso fazer isso?

O ssh quebra o while-loop no bash

Eu uso este bash-code para fazer upload de arquivos para um servidor remoto, para arquivos normais isso funciona bem: for i in `find devel/ -newer $UPLOAD_FILE` do echo “Upload:” $i if [ -d $i ] then echo “Creating directory” $i ssh $USER@$SERVER “cd ${REMOTE_PATH}; mkdir -p $i” continue fi if scp -Cp $i $USER@$SERVER:$REMOTE_PATH/$i then […]

Um shell script pode definir variables ​​de ambiente do shell de chamada?

Eu estou tentando escrever um script de shell que, quando executado, irá definir algumas variables ​​de ambiente que permanecerão definidas no shell do chamador. setenv FOO foo em csh / tcsh ou export FOO=foo em sh / bash, configure-o apenas durante a execução do script. Eu já sei disso source myscript executará os comandos do […]

Como “grep” um stream contínuo?

É possível usar o grep em um stream contínuo? O que quero dizer é uma espécie de comando tail -f , mas com grep na saída, a fim de manter apenas as linhas que me interessam. Eu tentei tail -f | grep pattern tail -f | grep pattern mas parece que o grep só pode […]

Como expandir manualmente uma variável especial (ex: ~ til) no bash

Eu tenho uma variável no meu script bash cujo valor é algo como isto: ~/a/b/c Note que é um til não expandido. Quando faço ls -lt nesta variável (chamo de $ VAR), não consigo esse diretório. Eu quero deixar bash interpretar / expandir essa variável sem executá-lo. Em outras palavras, quero que o bash rode […]