Как использовать команду «source» в Zsh - PullRequest
1 голос
/ 14 февраля 2020

Я работаю внутри терминала Zsh на Ма c.

Я пытаюсь использовать команду source, чтобы я мог просто вызывать свой сценарий по имени, а не вводить путь к сценарию ". sh". Команда source не возвращает никаких ошибок, но как только я пытаюсь вызвать файл ". sh" по имени, он возвращает "команда не найдена".

Я также пытался набирать абсолютный путь при использовании команды source, но безуспешно.

Команды терминала:

source ~/Documents/marco.sh
marco
zsh: command not found: marco

marco. sh

#!/usr/bin/env bash  
touch ~/Documents/marco.txt
echo $(pwd) > ~/Documents/marco.txt

1 Ответ

0 голосов
/ 15 февраля 2020

Чтобы сделать это именно так, как вы хотите, вы можете сделать функцию marco:

# marco.sh
marco () {
  touch ~/Documents/marco.txt
  echo $(pwd) > ~/Documents/marco.txt
}

Затем вы source запустите marco. Если вы собираетесь использовать это часто, я предлагаю поместить эту функцию в .zshrc или другой файл, который будет автоматически получен вашей оболочкой.

И, как предлагается в комментариях, вы также можете поместить свой оригинальный marco.sh на вашем пути. Мне нравится использовать ~/bin для таких типов личных исполняемых файлов:

$ mkdir ~/bin
$ mv ~/Documents/marco.sh ~/bin
$ export PATH="$HOME/bin:$PATH"
$ marco.sh

Опять же, добавьте строку export PATH в ваш .zshrc или аналогичный файл.

...