Я знал, что существует переменная PWD, которая изменяется при вводе команды cd. Но когда я пытаюсь изменить его вручную, текущий каталог не изменяется. Как напрямую обращаться с PWD?Как я могу напрямую манипулировать PWD?
ответ
По крайней мере, на компьютерах Mac и Linux, работающих под управлением bash, вы можете просто перезаписать переменную, поэтому запуск PWD =/изменит ваш текущий каталог (в подсказке) на /.
Переменная PWD в bash управляет рабочим каталогом оболочки (снова только приглашение), и вы увидите, что каталог после команды PWD = был изменен, но команда pwd не подвержена влиянию изменения.
<0>[email protected]:~$ PWD=/
<0>[email protected]:/$ pwd
/Users/xxxx
Теперь переменная PWD среды Баш подсказки вещь и не реальный рабочий каталог, и не модифицирует его полезное, что нужно сделать, если вы на самом деле не использовать команду «CD».
Он просто меняет приглашение, он не меняет каталог. –
Woops. Это правильно @thatotherguy – Keystone
Хотя другие оболочки также могут поддерживать такую переменную, переменная $PWD
обычно специфична для оболочки bash.
bash manual говорит:
PWD
Текущий рабочий каталог, установленный в кд встроенной команды.
Значение будет установлено при использовании cd
встроенной команды, чтобы изменить каталог, но удар не изменит текущий каталог при установке $PWD
.
Назначение этой переменной может быть проигнорировано.
Назначения не являются особыми в bash, тире, золе, zsh или ksh, и значение будет просто перезаписано в следующий раз, когда каталог изменений оболочки.
- 1. Как я могу манипулировать списками?
- 2. Как я могу манипулировать поиском/фильтрами jqGrid?
- 3. Как напрямую манипулировать текселями в OpenGL ES?
- 4. Как я могу манипулировать стеком активности Android?
- 5. Как я могу манипулировать текстом через iframe?
- 6. Как я могу манипулировать параметрами выбора angularjs
- 7. Как я могу манипулировать своими блогами Drupal?
- 8. Как я могу манипулировать битами в Python?
- 9. Как я могу манипулировать строкой переменной nginx
- 10. JQuery - Как я могу манипулировать вкладками
- 11. Как я могу манипулировать строками в JSX?
- 12. Как я могу манипулировать пикселями в холсте?
- 13. как я могу манипулировать очень большим списком
- 14. Как я могу манипулировать элементами списка TinyMCE?
- 15. Как я могу манипулировать объектами в subView?
- 16. Как я могу манипулировать этим текстом?
- 17. Как я могу манипулировать Winforms картировать
- 18. Как я могу манипулировать датами в SpEL?
- 19. Как я могу манипулировать результатами getScanResults()
- 20. Как я могу напрямую подключить 2 пользователя?
- 21. Как я могу вызвать функцию Monad напрямую?
- 22. Как я могу назвать «operator ->()» напрямую?
- 23. Эффективно ли манипулировать Netlogo pcolor RGB напрямую?
- 24. $ PWD vs pwd относительно переносимости
- 25. Могу ли я манипулировать символами, как я управляю строками?
- 26. Каким образом я могу манипулировать данными анализа?
- 27. PyV8, могу ли я манипулировать структурой DOM?
- 28. Могу ли я манипулировать способ сортировки()?
- 29. Почему я не могу импортировать statsmodels напрямую?
- 30. Могу ли я перехватить функцию, вызванную напрямую?
Вы пытаетесь изменить PWD или пытаетесь изменить текущий каталог? Чего вы действительно пытаетесь достичь, манипулируя PWD напрямую, а не используя 'cd'? То есть, неясно, какова ваша фактическая цель, и я подозреваю, что ваш вопрос может быть проблемой [XY] (http://meta.stackexchange.com/questions/66377/what-is-the-xy-problem). – kaylum
Я просто хотел сделать то же самое, что и команда cd, но по-другому (путем изменения PWD вручную). –
Ну, очевидно, что изменение 'PWD' не достигает того, что вы нашли. Потому что 'cd' - это кошка, которая wags хвост PWD, а не наоборот. 'cd' является частью оболочки. Большинство оболочек написано на C. Поэтому, если вы хотите сделать то, что он делает, напишите C (или какой-то другой язык) код, который делает то же самое, что и он. В C функция ['chdir'] (http://linux.die.net/man/2/chdir) может использоваться для изменения текущего рабочего каталога. – kaylum