Я должен понять, как сценарий, который был дан мне работы. Существуют некоторые, если условия и команды и синтаксисы, я понятия не имею, что они делают и я попытался гуглить их, но не имел никакой удачи.
Таким образом, что делает [ -z String ]
?
Например, это появляется в сценарии [ -z "$(which ssh)" ]
Также $(which ssh)
строка или переменная?
Что делает ~/.filename
средний? Я знаю это ./filename
используется для выполнения файлов иногда и этого ./
это - указатель на сам каталог, но что ~/.
?
Что делает [ -e filename ]
?
Что делает [ ! -d ~/.ssh ]
?
Можно найти больше о [
путем ввода 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 ]