Articles of bash

Comandos bash multilinhas no makefile

Eu tenho uma maneira muito confortável de compilar meu projeto através de algumas linhas de comandos bash. Mas agora eu preciso compilá-lo via makefile. Considerando que todo comando é executado em seu próprio shell, minha pergunta é qual é a melhor maneira de executar o comando bash multi-line, dependendo um do outro, no makefile? Por […]

Quando os colchetes são necessários em uma instrução Bash if?

Normalmente, eu uso colchetes na declaração if: if [ “$name” = ‘Bob’ ]; then … Mas, quando eu verifico se o grep bem-sucedido, não uso os colchetes: if grep -q “$text” $file ; then … Quando os colchetes são necessários na declaração if ?

Bash e nomes de arquivos com espaços

A seguir, uma linha de comando simples de Bash: grep -li ‘regex’ “filename with spaces” “filename” Sem problemas. Também o seguinte funciona muito bem: grep -li ‘regex’ $(<listOfFiles.txt) onde listOfFiles.txt contém uma lista de nomes de arquivos a serem usados, um nome de arquivo por linha. O problema ocorre quando listOfFiles.txt contém nomes de arquivos […]

Validação de nome de domínio totalmente qualificado

Existe uma maneira rápida e suja de validar se o FQDN correto foi inserido? Tenha em mente que não há servidor DNS ou conexão com a Internet, portanto, a validação deve ser feita via regex / awk / sed. Alguma ideia?

Como ignorar comandos xargs se a input stdin estiver vazia?

Considere este comando: ls /mydir/*.txt | xargs chown root A intenção é mudar os proprietários de todos os arquivos de texto em mydir para root O problema é que, se não houver arquivos .txt no mydir , o xargs mostrará um erro dizendo que não há nenhum caminho especificado. Este é um exemplo inofensivo porque […]

Remover elemento do shell do array

Eu preciso remover um elemento de uma matriz no bash shell. Geralmente eu simplesmente faço: array=(“${(@)array:#}”) Infelizmente, o elemento que desejo remover é uma variável, portanto não posso usar o comando anterior. Aqui um exemplo: array+=(pluto) array+=(pippo) delete=(pluto) array( ${array[@]/$delete} ) -> but clearly doesn’t work because of {} Qualquer ideia?

Bash: maneira fácil de passar uma string “raw” para grep?

grep não pode ser alimentado com strings “raw” quando usado a partir da linha de comando, uma vez que alguns caracteres precisam ser escapados para não serem tratados como literais. Por exemplo: $ grep ‘(hello|bye)’ # WON’T MATCH ‘hello’ $ grep ‘\(hello\|bye\)’ # GOOD, BUT QUICKLY BECOMES UNREADABLE Eu estava usando printf para auto-escape seqüências […]

Caminho absoluto do script Bash com o OSX

Eu estou tentando obter o caminho absoluto para o script atualmente em execução no OS X. Eu vi muitas respostas indo para readlink -f $0 . No entanto, desde readlink do OS X é o mesmo que o BSD, ele simplesmente não funciona (funciona com a versão do GNU). Alguma sugestão para uma solução pronta […]

Como você mata todos os processos do Linux que são mais antigos que uma certa idade?

Eu tenho um problema com alguns processos parecidos com zumbis em um determinado servidor que precisam ser mortos de vez em quando. Como posso identificar melhor aqueles que foram executados por mais de uma hora ou mais?

Como obter a data / hora de criação do arquivo no Bash / Debian?

Estou usando o Bash no Debian GNU / Linux 6.0. É possível obter a data / hora de criação do arquivo? Não é a data / hora da modificação. ls -lh a.txt e stat -c %y a.txt ambos fornecem apenas a hora da modificação.