Установка псевдонима для сценария оболочки, расположенного в одной из моих папок - PullRequest
0 голосов
/ 18 июня 2020

Итак, у меня есть эта папка BashScripts, в которой следующий путь к каталогу

/home/sadnan/BashScripts

/home/sadnan является моим $HOME. Здесь я собираюсь разместить свои собственные сценарии оболочки. В настоящее время существует только один с именем cbi.sh. Скрипт работает должным образом, когда я бегу из папки. Теперь я хочу иметь возможность запускать его глобально. Итак, я добавил следующее в свой .bashr c файл

#For my personal Bash Scripts
if [ -d $HOME/BashScripts ]; then
 PATH="$PATH:$HOME/BashScripts"
fi

alias cbi='. ./cbi.sh'

Итак, теперь, когда я делаю echo $PATH, он распечатывает следующее

/home/sadnan/.nvm/versions/node/v12.18.0/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/home/sadnan/BashScripts

Итак, папка кажется добавлен в PATH. Что, если я правильно понимаю, должно позволить мне запускать мои сценарии оболочки глобально.

И затем я также настроил псевдоним для сценария и назвал его cbi

Но теперь, когда я запускаю cbi или ./cbi.sh на моем терминале, это то, что я получаю

bash: ./cbi.sh: No such file or directory

Что я делаю не так, я не делал много сценариев оболочки. Но я думал, что это путь к go.

Я также пробовал alias cbi=`source ./cbi.sh' и alias cbi=`sh ./cbi.sh' Ни один из них не работал.

Ответы [ 2 ]

2 голосов
/ 18 июня 2020

Необходимо запустить cbi.sh:

# Wrong, the file is not named 'cbi'
cbi

# Wrong, the file is not in the current directory
./cbi.sh

# Wrong, same reason as above
alias cbi='. ./cbi.sh'
cbi

# Correct, this is the name of the file:
cbi.sh
1 голос
/ 18 июня 2020

./cbi.sh означает «запустить cbi. sh из текущего каталога». Так что, если вы не в /home/sadnan/BashScripts, это не сработает, так как он не может найти cbi.sh в текущем каталоге.

Чтобы убедиться, что ваш PATH установлен правильно, выполните which cbi.sh. Он должен вернуть /home/sadnan/BashScripts/cbi.sh.

Если вы должны иметь псевдоним, вы можете сделать alias cbi='/home/sadnan/BashScripts/cbi.sh'. Это самый простой способ обеспечить правильное выполнение.

Чтобы все вышеперечисленное работало, cbi.sh должен быть исполняемым (chmod u+x cbi.sh).


Если вы хотите использовать исходный код it (. cbi.sh) вместо того, чтобы вызывать его как исполняемый файл, определите свой псевдоним следующим образом:

alias cbi='. /home/sadnan/BashScripts/cbi.sh'

Изучите разницу между выполнением и «поиском» скрипта.



EDIT : я удалил этот текст после комментария @ D iego.

ваша переменная PATH не будет использоваться вообще. Затем вам следует удалить добавление PATH и

...