#linux #unix #shell
Для чего используют символы `? Например: python3.4 `which ptpython`
Ответы
Ответ 1
это несколько устаревшая форма записи для вызова вложенной оболочки. уже в posix version 2 (1997) присутствует и более удобная (и рекомендуемая стандартом posix) форма записи: $(command). удобство можно увидеть наглядно при вложении нескольких вызовов один внутрь другого: $ echo `echo \`echo \\\`echo 1\\\` 2\` 3` 4 1 2 3 4 $ echo $(echo $(echo $(echo 1) 2) 3) 4 1 2 3 4 смысл использования: во время интерпретации команды оболочка, встретив конструкцию $(command) (или `command`), запускает новый процесс оболочки, в котором выполняется указанная команда, а всё, что возвратит команда в stdout, будет подставлено вместо этой конструкции (то, что команда возвратит в stderr, добавится к stderr основного процесса оболочки). Например: python3.4 `which ptpython` в данном случае сначала будет выполнена команда which ptpython, которая вёрнет (в stdout) полный путь к программе ptpython. если, конечно, такая программа присутствует в вашей системе в каком-либо из каталогов, упомянутых в переменной окружения $PATH. если отсутствует — будет возвращена пустая строка. затем результат (полный путь либо пустая строка) будет передана программе python3.4 в качестве первого аргумента. если, конечно, такая программа присутствует в вашей системе в каком-либо из каталогов, упомянутых в переменной окружения $PATH. если отсутствует — вы получите сообщение об ошибке: command not found. посмотреть текущее значение переменной окружения, например, $PATH, можно так: $ echo $PATHОтвет 2
Обратные кавычки используются в баше для записи какой-то выполнимой команды, результат работы которой будет использован в скрипте. Например попробуйте: echo `whoami` и echo 'whoami' Первый вариант выполнит команду whoami и распечатает ее результат (имя текущего пользователя), второй вариант просто распечатает строку "whoami".
Комментариев нет:
Отправить комментарий