Я не могу понять следующий код в bash.Способ получить имя каталога запуска
set `pwd` ; mfix=$1
На самом деле получить имя каталога запуска. Но я не знаю, как это работает. Что означает команда set?
Я не могу понять следующий код в bash.Способ получить имя каталога запуска
set `pwd` ; mfix=$1
На самом деле получить имя каталога запуска. Но я не знаю, как это работает. Что означает команда set?
Этот код в bash помещает результат команды pwd
в переменную mfix.
Вы можете распечатать результат переменной mfix, запустив
echo $mfix
Из 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)
вместо кавычки.
Hah! у меня такая же болезнь. (проверка «просто» должна быть «просто») на третьей строке снизу, начиная с ** Наконец **. Человеческая натура должна набирать «просто» как «простую» ... Если вы говорите «просто», например, «simp-l-e» вы получаете «просто». Кто знает ... –
@ DavidC.Rankin :) Я счастлив, потому что я никогда не изучал английский «по-физически», но только из Интернета. Поэтому я могу читать (и понимать) почти все (у меня есть относительно хороший словарь), но не понимаю, чтобы говорить по-английски, не знаю правильного произношения - так что не могу говорить, и, наконец, я могу написать только одно (сильно стилизованный) текст. ;)/Thanx - отредактирован.:)/ – jm666
Вы пишете отлично, молодец! –