Articles of bash

Variáveis ​​do shell de pesquisa por nome, indiretamente

Digamos que eu tenha o nome de uma variável armazenado em outra variável: myvar=123 varname=myvar Agora, gostaria de obter o 123 usando apenas a variável $ varname. Existe um caminho direto para isso? Eu não encontrei nenhum tal bash builtin para pesquisa pelo nome, então surgiu com isso: function var { v=”\$$1″; eval “echo “$v; […]

Como executar o comando bash com privilégios sudo em Java?

Estou usando o ProcessBuilder para executar comandos bash: import java.io.IOException; public class Main { public static void main(String[] args) { try { Process pb = new ProcessBuilder(“gedit”).start(); } catch (IOException e) { e.printStackTrace(); } } } Mas eu quero fazer algo assim: Process pb = new ProcessBuilder(“sudo”, “gedit”).start(); Como passar a senha do superusuário para […]

Git / Bash é extremamente lento no Windows 7 x64

Eu tenho usado o Git no Windows e no Ubuntu durante o desenvolvimento de um projeto pequeno, frequentemente alternando entre os dois. O problema que estou tendo é que o Git / Bash se torna lento. Quando digo devagar, quero dizer que o cd em execução leva de 8 a 25 segundos, a execução de […]

Por que “local” varre o código de retorno de um comando?

Esse snippet de Bash funciona como eu esperava: $ fun1() { x=$(false); echo “exit code: $?”; } $ fun1 exit code: 1 Mas este, usando local , não: $ fun2() { local x=$(false); echo “exit code: $?”; } $ fun2 exit code: 0 Alguém pode explicar por que o local varre o código de retorno […]

Erro ao manipular no Bash

Qual é o seu método favorito para lidar com erros no Bash? O melhor exemplo de erros de manuseio que encontrei na web foi escrito por William Shotts, Jr em http://www.linuxcommand.org . Ele sugere o uso da seguinte function para manipulação de erros no Bash: #!/bin/bash # A slicker error handling routine # I put […]

Capturando saída de encontrar. -print0 em um array bash

Usando o find . -print0 find . -print0 parece ser a única maneira segura de obter uma lista de arquivos no bash devido à possibilidade de nomes de arquivos contendo espaços, novas linhas, aspas etc. No entanto, estou tendo dificuldades para tornar a saída do find útil no bash ou com outros utilitários de linha […]

Como zerar uma sequência de inteiros no bash para que todos tenham a mesma largura?

Eu preciso dar alguns valores, for i in $(seq $first $last) do does something here done Para $first e $last , eu preciso que seja de comprimento fixo 5. Então, se a input é 1 , eu preciso adicionar zeros na frente de tal forma que se torne 00001 . Loops até 99999 por exemplo, […]

Testar se um glob corresponde a algum arquivo

Se eu quiser verificar a existência de um único arquivo, posso testá-lo usando test -e filename ou [ -e filename ] . Supondo que eu tenha um glob e eu quero saber se existem arquivos cujos nomes coincidam com o glob. O glob pode corresponder a 0 arquivos (caso em que não preciso fazer nada), […]

sudo echo “alguma coisa” >> / etc / privilegedFile não funciona… existe uma alternativa?

Esta é uma pergunta bem simples, pelo menos parece que deveria ser, sobre as permissions do sudo no Linux. Muitas vezes eu só quero acrescentar alguma coisa a /etc/hosts ou a um arquivo similar, mas acabo não sendo possível porque tanto > quanto >> não são permitidos, mesmo com root. Existe alguma maneira de fazer […]

Como percorrer os nomes de arquivos retornados por find?

x=$(find . -name “*.txt”) echo $x se eu executar o código acima no shell Bash, o que obtenho é uma string contendo vários nomes de arquivos separados por espaços em branco, não por uma lista. É claro que posso separá-los em branco para obter uma lista, mas tenho certeza de que há uma maneira melhor […]