Понимание некоторой Ubuntu окружает команды

Я должен понять, как сценарий, который был дан мне работы. Существуют некоторые, если условия и команды и синтаксисы, я понятия не имею, что они делают и я попытался гуглить их, но не имел никакой удачи.

  1. Таким образом, что делает [ -z String ] ?

    Например, это появляется в сценарии [ -z "$(which ssh)" ]
    Также $(which ssh) строка или переменная?

  2. Что делает ~/.filename средний? Я знаю это ./filename используется для выполнения файлов иногда и этого ./ это - указатель на сам каталог, но что ~/.?

  3. Что делает [ -e filename ] ?

  4. Что делает [ ! -d ~/.ssh ] ?

0
задан 4 July 2016 в 16:01

1 ответ

Можно найти больше о [ путем ввода man [ в терминал. Это - тестовая конструкция для использования после if, и т.д. Следовательно,

   -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)" ] проверка материального положения, если "$(which ssh)" строка нулевой длины. $(...) средства выполниться ... часть сначала. Если Вы работаете which ssh в терминале Вы будете видеть, что это произведет путь к shh исполняемый файл, если это существует. Следовательно, если это будет существовать, то строка не будет нулевой длиной, и тест перестанет работать.

2) ~ ярлык для Вашего корневого каталога, обычно располагаемого в /home/your_user_name. [ -e filename ] проверка материального положения, если этот файл существует и возвращает true, если это делает.

3) [ ! -d ~/.ssh ] проверка материального положения, если ~/.ssh (вероятно, /home/your_user_name/.ssh) существует и каталог, и если это не, затем возвратите true.


== РЕДАКТИРОВАНИЕ ==

Необходимо попытаться разобраться в проблеме человека, потому что она действительно усовершенствует знание удара. Если man [ не работает, пробуют man test вместо этого. (test синоним для [...].) В противном случае вот интерактивная версия.

   -w FILE
          FILE exists and write permission is granted

Я на самом деле думаю, что у Вас мог бы быть он неправильный путь вокруг. Это должно быть

[ -w "$1" ]

нет

[ "$1" -w ]
1
ответ дан 8 August 2019 в 09:09

Другие вопросы по тегам:

Похожие вопросы: