Compreendendo alguns comandos shell do Ubuntu

0

Eu preciso entender como um script que me foi dado funciona. Existem alguns se condições e comandos e sintaxes Eu não tenho idéia do que eles fazem e eu tentei pesquisá-los, mas não tive sorte.

  1. Então, o que [ -z String ] faz?

    Por exemplo, isso aparece no script [ -z "$(which ssh)" ]
    Também é $(which ssh) uma string ou uma variável?

  2. O que significa ~/.filename ? Eu sei que ./filename é usado para executar arquivos às vezes e que ./ é um ponteiro para o diretório em si, mas qual é o ~/. ?

  3. O que o [ -e filename ] faz?

  4. O que o [ ! -d ~/.ssh ] faz?

por user282724 18.05.2014 / 08:01

1 resposta

1

Você pode encontrar mais sobre [ digitando man [ no terminal. Esta é uma construção de teste para uso após if , etc. Portanto,

   -z STRING
          the length of STRING is zero
   -e FILE
          FILE exists
   ! EXPRESSION
          EXPRESSION is false
   -d FILE
          FILE exists and is a directory

1) [ -z "$(which ssh)" ] significa testar se "$(which ssh)" é uma cadeia de comprimento zero. $(...) significa executar a parte ... primeiro. Se você executar which ssh em um terminal, verá que ele produzirá o caminho para o executável shh , se existir. Portanto, se isso existir, a cadeia não será de comprimento zero e o teste falhará.

2) ~ é um atalho para o seu diretório pessoal, geralmente localizado em /home/your_user_name . [ -e filename ] significa testar se esse arquivo existe e retornar true, se houver.

3) [ ! -d ~/.ssh ] significa testar se ~/.ssh (provavelmente /home/your_user_name/.ssh ) existe e é um diretório e, se não for , , retornará true.

== EDIT ==

Você deve tentar resolver o problema do homem, porque isso realmente fará avançar seu conhecimento bash. Se man [ não funcionar, tente man test . ( test é sinônimo de [...] .) Se não, aqui está uma versão online .

   -w FILE
          FILE exists and write permission is granted

Eu realmente acho que você pode ter o caminho errado. Deve ser

[ -w "$1" ]

não

[ "$1" -w ]
    
por Sparhawk 18.05.2014 / 08:13