2014-09-03 3 views

ответ

2

Этот код в bash помещает результат команды pwd в переменную mfix.

Вы можете распечатать результат переменной mfix, запустив

echo $mfix 
5

Из doc для set:

Это встроенная команда настолько сложна, что заслуживает отдельного раздела. set позволяет изменить значения параметров оболочки и установить позиционные параметры или отобразить имена и значения переменных оболочки .

например.

set v1 v2 v3 ; echo $1 

напечатает

v1 

COMAND внутри обратных кавычек называются "подстановки команд". Из docs:

Bash выполняет расширение путем выполнения команды и замены на замену команды со стандартным выводом команды с любыми символ перевода строки удалены.

В вашем примере, это наборов 1-й позиционного аргумент $1 к значению результата выполнения команды внутри кавычки. (называется подстановкой команды). Команда pwd показывает текущий рабочий каталог.

В любом случае, если путь к каталогу содержит пробел, то $1 получит только первую часть пути.

$ pwd 
/some/path with/space 
$ set `pwd` 
$ echo $1 
/some/path 
$echo $2 
with/space 

Наконец, все выше странная конструкция, потому что вы можете просто:

mfix=$(pwd) #old school: mfix=`pwd` 

Лучше использовать $(command) вместо кавычки.

+0

Hah! у меня такая же болезнь. (проверка «просто» должна быть «просто») на третьей строке снизу, начиная с ** Наконец **. Человеческая натура должна набирать «просто» как «простую» ... Если вы говорите «просто», например, «simp-l-e» вы получаете «просто». Кто знает ... –

+0

@ DavidC.Rankin :) Я счастлив, потому что я никогда не изучал английский «по-физически», но только из Интернета. Поэтому я могу читать (и понимать) почти все (у меня есть относительно хороший словарь), но не понимаю, чтобы говорить по-английски, не знаю правильного произношения - так что не могу говорить, и, наконец, я могу написать только одно (сильно стилизованный) текст. ;)/Thanx - отредактирован.:)/ – jm666

+0

Вы пишете отлично, молодец! –

Смежные вопросы