Perguntas com a marcação «shell»

27
Verifique o comprimento de uma variável

Eu tenho que verificar o comprimento da variável de leitura (meu script limita a cinco caracteres inseridos), penso em algo como isto: #!/bin/bash read string check=${#string} echo $check if [ $check -ge 5 ]; then echo "error" ; exit else echo "done" fi existe uma solução mais...

27
Diferença entre 'ls' e 'echo $ (ls)'

Considere as duas amostras de casca $ ls myDoc.html SomeDirectory someDoc.txt e $ echo $(ls) myDoc.html SomeDirectory someDoc.txt A primeira é executada lse, como eu entendo, anexa o conteúdo do diretório de trabalho atual ao stdoutarquivo (que é o que o terminal exibe). Isso está correto? O...

27
Erro no teste de colchete quando a string é um parêntese esquerdo

Eu costumava estar confiante sobre o fato de que citar seqüências de caracteres é sempre uma boa prática para evitar que o shell a analise. Então me deparei com isso: $ x='(' $ [ "$x" = '1' -a "$y" = '1' ] bash: [: `)' expected, found 1 Tentando isolar o problema, obtendo o mesmo erro: $ [ '('...

27
Como posso cronometrar um cachimbo?

Eu quero timeum comando que consiste em dois comandos separados com uma saída de tubulação para outra. Por exemplo, considere os dois scripts abaixo: $ cat foo.sh #!/bin/sh sleep 4 $ cat bar.sh #!/bin/sh sleep 2 Agora, como posso timerelatar o tempo gasto foo.sh | bar.sh(e sim, eu sei que o...

27
Como executar comandos de biblioteca a partir do shell?

Eu queria simplesmente calcular o comprimento de uma string (que é o valor do hash). Então, eu abri o terminal e fiz isso: $ apropos length que me devolveu um monte de comandos / funções tendo (3)ou (3ssl)acrescentado no final deles. Agora, homem, homem, nos fornece informações sobre o que isso...

26
Por que preciso citar uma variável para if, mas não para eco?

Eu li que você precisa de aspas duplas para expandir variáveis, por exemplo if [ -n "$test" ]; then echo '$test ok'; else echo '$test null'; fi funcionará como esperado, enquanto if [ -n $test ]; then echo '$test ok'; else echo '$test null'; fi sempre dirá $test okmesmo se $testfor nulo. mas...

26
Execute o script no shell atual sem. antes do comando

Se um script deve ser executado no shell atual, isso pode ser alcançado adicionando um ponto antes do comando: . ./somescript.sh Existe uma maneira de fazer isso sem digitar o ponto toda vez? Por exemplo, um comando para mudar para o shell pai a partir do próprio