Какая польза от использования точки до / дома?

Чтобы выполнить скрипт, мы вводим ./script.ksh, но сначала для подключения к базе данных мы идем по следующему пути, набрав . / . /

 $ . /home/sqllib/db2profile $ db2 

почему мы должны использовать . / . / до дома?

2 Solutions collect form web for “Какая польза от использования точки до / дома?”

. что вы находите как часть путей, не имеет ничего общего с . команда.

. это специальное имя файла, которое существует в каждом каталоге и обозначает текущий каталог. Таким образом ./script.ksh обозначает файл script.ksh в текущем каталоге и так делает ././script.ksh и так делает ./././script.ksh (неважно, сколько раз вы спрашиваете pathname resolver, чтобы перейти от текущего каталога к себе самому себе …). Среди других причин мы используем ./script.ksh вместо просто script.ksh чтобы было ясно, что мы имеем в виду путь, а не команду оболочки.

. также является встроенной оболочкой, которая делает оболочку источником содержимого файла, предоставленного ей в качестве аргумента в текущую среду оболочки, в отличие от ее выполнения как внешней команды. . команда также может записывать source во многие оболочки (это псевдоним совместимости, который исходит из наследия csh ). Обратите внимание: поскольку это команда оболочки (которая состоит из одного символа пунктуации, например:), за ней всегда следуют пробелы.

В этом случае . сообщает оболочке выполнить следующий скрипт (в данном случае /home/sqllib/db2profile ) в контексте текущего процесса оболочки вместо запуска нового процесса оболочки для запуска скрипта.

Причина этого заключается в том, что скрипт, чье имя следует за ним . вероятно, создает переменные среды, которые понадобятся другим программам. Без . перед именем сценария оболочки будет запущен новый процесс для запуска сценария, и, таким образом, любые переменные среды, созданные сценарием, будут потеряны при завершении сценария и завершении его процесса. Положив . перед скриптом сценарий запускается текущим процессом оболочки, так что любые переменные среды, которые создаются сценарием, создаются в контексте текущей оболочки, и поэтому эти переменные среды доступны для скриптов и программ, которые запускаются позже, например, команда db2 на следующей строке.

  • Отдельные пространства имен для функций и переменных в оболочках POSIX
  • Linux. Отправка команды на экран через сценарий оболочки?
  • Должен ли я использовать «sudo» в сценариях, которые я пишу?
  • Разница между «эхом» и «эхом -e»
  • Команда ls: что означает первая строка?
  • Автоматические фоновые процессы
  • Запуск приложения без удержания терминала
  • Поиск и удаление подпапок, содержащих только самые последние
  • Существует ли стандартная аббревиатура для 'find. -name foo 'или мне нужна функция для этого?
  • Создайте нового пользователя без подсказки с chpasswd
  • Почему «найти» не показывать этот файл?
  • Interesting Posts

    Как изменить язык для команды man?

    бездисковый поиск дубликатов имен файлов

    Bash, чтобы получить результат передачи rsync и закрепить его как каталог в исходном каталоге

    openvpn мост к сети Ethernet

    Как сделать PulseAudio и OSS только приложения сосуществуют на Debian Wheezy?

    Для Loop для Google Image Загрузка скрипта Bash

    Объединение файлов по строкам

    Существует ли альтернатива fail2ban в официальном репозитории Centos?

    Как удалить прежний каталог MTP, который теперь дает мне ошибку ввода / вывода всякий раз, когда я пытаюсь?

    Как перенести файлы с Windows на Ubuntu на Virtualbox?

    Amazon EC2 micro instance большое количество запросов ввода-вывода

    Невозможно выполнить двоичный файл в NixOS – нет такого файла или каталога

    OSX: удалить все соответствующие сертификаты по командной строке

    Невозможно объяснить записи «аварии» в выводе команды «последний»

    Подставка Sed с 3 линиями раздвижных окон

    Linux и Unix - лучшая ОС в мире.