Intereting Posts
Заменить соответствия многострочной строкой с помощью sed Невозможно заставить YouCompleteMe функционировать Не удалось создать для Ubuntu Как получить всю строку в переменной цикла команды for Невозможно получить последнюю информацию о подключении для пользователей SSH (заблокирован, без оболочки, открытый ключ) есть ли альтернатива? Как связать ключ Windows с меню GNOME в Fedora? lirc отказывается играть Можно ли включить запрос на подтверждение при выполнении вложенной команды в bash? Возвращать длинное целочисленное значение из функции в ksh rkhunter предупреждает о доступе root ssh, когда этот доступ не разрешен в системе Печать значений, которые не менее чем в 2 раза превышают значения 3 шага выше и ниже в том же столбце Блокировать определенный IP-адрес от доступа к шлюзу Исправляет ли CVE-2017-16939 версия пакета ядра 3.10.0-862.11.6.el7.x86_64? grepping массив из файла и повторное использование шаблона поиска Как определить имя функции callee в скрипте

Автоматически исправить путь при запуске команды из истории?

Я выполняю рекурсивный поиск, чтобы найти команду, которую я выполнил несколько дней назад, и я хочу ее запустить. Однако эта команда должна запускаться с пути, из которого я запускал его ранее, а не там, где я сейчас.

Возможно ли, чтобы zsh это и изменил команду на полный путь и выполнил мой текущий путь? или, может быть, fork переключение процесса на исходный путь запустит его и вернется?

Исходный каталог, в котором выполнялась команда, не записывается в историю.

Вы можете установить крючок, который будет выполняться, если имя команды, которую вы пытаетесь выполнить, не найдено: command_not_found_handler . Но если у вас есть хорошая идея о том, что раньше работало в то время, это не приведет вас далеко.

Связанное чтение: zsh history – полный путь ; Могу ли я иметь историю истории оболочки, как расширяются шаблоны?

В большинстве случаев это фактически было бы нежелательным действием. Часто, когда я повторно запускаю команду, специально запускать их в моем текущем контексте. Запуск команды history и ее действие над чем-то другим, кроме текущей папки, могут даже иметь неожиданные и нежелательные побочные эффекты.

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

  • Если им нужно загружать библиотеки из ресурсов, которые находятся по пути относительно исполняемого файла, исправьте их, чтобы они знали, где их найти, используя такие вещи, как dirname и $0 .

  • Если им нужны данные, рассмотрите возможность передачи им аргументов, которые показывают, где найти данные, которые не являются относительными, чтобы их можно было повторно использовать.

  • Если источник проблемы не может быть исправлен вами, рассмотрите возможность написания небольших функций оболочки или сценариев оболочки, которые настраивают среду для исполняемого файла независимо от того, какие факторы зависят от вашей системы.