Articles of bash

Capture stdout e stderr em diferentes variables

É possível armazenar ou capturar stdout e stderr em diferentes variables , sem usar um arquivo temporário? Agora eu faço isso para obter stdout em out e stderr em err quando executando some_command , mas gostaria de evitar o arquivo temporário. error_file=$(mktemp) out=$(some_command 2>$error_file) err=$(< error_file) rm $error_file

No bash, como posso verificar se uma string começa com algum valor?

Eu gostaria de verificar se uma string começa com “nó”, por exemplo, “node001”. Algo como if [ $HOST == user* ] then echo yes fi Como posso fazer isso corretamente? Eu ainda preciso combinar expressões para verificar se o HOST é “user1” ou começa com “node” if [ [[ $HOST == user1 ]] -o [[ […]

Maneira confiável para um script bash para obter o caminho completo para si mesmo?

Eu tenho um script bash que precisa conhecer seu caminho completo. Estou tentando encontrar uma maneira amplamente compatível de fazer isso sem acabar com caminhos relativos ou de aparência descolada. Eu só preciso apoiar bash, não sh, csh, etc. O que eu encontrei até agora: A resposta aceita para ” Obtendo o diretório de origem […]

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, […]