Это моя вина. В моем файле ~ / .profile был [[some_test]], и он хорошо работает в bash, но я думаю, что тире выполняется несколько команд pre_session_creation / post_session_creation при запуске сеанса и тире не знаю [[keyword. Итак, все было загружено, но остановилось при ошибке.
Обратите внимание, что символ:
'Одиночная цитата
Enclosing characters in single quotes preserves the literal value of
each character within the quotes. A single quote may not occur between
single quotes, even when preceded by a backslash.
и
' [!d2 ]
`
Command substitution allows the output of a command to replace the com‐
mand name. There are two forms:
$(command)
or
`command`
Bash performs the expansion by executing command and replacing the com‐
mand substitution with the standard output of the command, with any
trailing newlines deleted.
Backquote
`wc -l sample.txt`
Итак, Backquote возвращает результат команды на стандартный вывод. Вот почему
'wc -l sample.txt'возвращает результаты команды, а
просто возвращает «wc -l sample.txt» как обычная строка
$ A='wc -l /proc/mounts'
$ B=`wc -l /proc/mounts`
$ C=$(wc -l /proc/mounts)
. Рассмотрим это как пример:
$ echo $A
wc -l /proc/mounts
$ echo $B
35 /proc/mounts
$ echo $C
35 /proc/mounts
Если вы хотите захватить вывод команды в переменной, вам нужно либо использовать обратные ссылки ``, либо заключить команду в $():
$ d=$(date)
$ echo "$d"
Mon Mar 17 10:22:25 CET 2014
$ d=`date`
$ echo "$d"
Mon Mar 17 10:22:25 CET 2014
Обратите внимание, что строка фактически оценивается в момент объявления переменной, а не когда вы ее эхо. Команда действительно выполняется внутри $() или обратных циклов, а выход этой команды сохраняется как значение переменной.
В общем, вы всегда должны использовать $() вместо обратных выходов, которые устарели и только вокруг по соображениям совместимости и гораздо более ограниченным. Вы не можете, например, вставлять команды в backticks, но вы можете с помощью $():
$ echo $(date -d $(echo yesterday))
Sun Mar 16 10:26:07 CET 2014
См. Эту тему в U & amp; L для более подробной информации о том, почему `` следует избегать. 3]