Создание и восстановление образа раздела с помощью dd

Вы можете узнать, в каком каталоге находится скрипт ( $ 0: h в zsh, «$ {0% / *}» в sh) и удалите этот каталог из ПУТЬ ( path = ($ {path: # $ 0: h}) в zsh, более сложный в sh . Это может потерпеть неудачу, если ПУТЬ содержит один и тот же каталог дважды, например, через символическую ссылку.

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

next=$(path=(${path:#$0:h}); print -lr -- =$0:t)
$next

Вместо этого я бы выполнил поиск PATH вручную и пропустил любое вхождение запущенного сценария.

for d in $path; do
  if [[ -x $d/$0:t && ! $d/$0:t -ef $0 ]]; then
    exec $d/$0:t
  fi
done

4
04.10.2016, 13:23
0 ответов

Теги

Похожие вопросы