Как вы можете создать команду с файлом Bash

Я создал файл .sh (или bash) и хотел бы создать команду для GNOME-терминала для этого файла. Я знаю, что вы запускаете файл .sh:

./file.sh

После того, как вы скомпилируете его, я также знаю, что все команды хранятся в /bin/bash. Но я не могу понять, как я могу создать команду, которую я могу вызывать, находясь в любом каталоге терминала, что-то вроде:

abc

будет запускать abc.h и т. Д. предложения?

1
задан 27 April 2013 в 02:35

3 ответа

Хотя ответ Раду абсолютно верен, я чувствую, что он немного неполон для новичка, который не знает, где находятся определенные файлы, так что пошагово по второму методу (с использованием ~/bin). Если вы хотите сохранить файлы в другом месте, кроме ~/bin, выполните шаг 1, в противном случае игнорируйте его и имейте в виду, что вы будете использовать ~/bin в качестве папок скриптов.

  1. Откройте терминал и выполните следующее:

    nano .profile
    

    В конце файла вы должны увидеть:

    # set PATH so it includes user's private bin if it exists
    if [ -d "$HOME/bin" ] ; then
        PATH="$HOME/bin:$PATH"
    fi
    

    Если Вы не видите этого, попробуйте вместо этого использовать nano .bash_profile. Имейте в виду, что вы должны быть в ~/, то есть /home/YOUR_USERNAME

    Это сообщает bash, где находятся пользовательские сценарии. По умолчанию установлено значение /home/YOUR_USERNAME/bin, которое сокращенно обозначается как $HOME/bin или ~/bin. Затем вы можете изменить его на любую папку, в которой хотите сохранить свои скрипты. У меня есть ~/.bin - то же самое, что и оригинал, но скрыто.

  2. Если вы уже выпустили chmod +x script.sh, просто переместите ваши скрипты в папку, в которой вы собираетесь их хранить - создайте их, если они не существуют. Внутри этой папки, если вы храните ваши скрипты как file.sh, вам придется каждый раз запускать file.sh, поэтому сохраняйте их как file - без расширений.

0
ответ дан 27 April 2013 в 02:35

Оболочка ведет список каталогов, где исполняемые файлы (программы) сохранены, и просто ищет каталоги в том списке. Если это не найдет программу после поиска каждого каталога в списке, то это выпустит известное command not found error сообщение. Этот список каталогов называют Вашим путем. Можно просмотреть список каталогов со следующей командой:

echo $PATH

Можно добавить каталоги к пути со следующей командой, где *directory* название каталога, который Вы хотите добавить:

export PATH=$PATH:*directory*

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

Большинство современных дистрибутивов Linux поощряет практику, в которой у каждого пользователя есть определенный каталог для программ, которые он лично использует. Этот каталог называют bin и подкаталог Вашего корневого каталога. Если Вы уже не имеете один, создайте его со следующей командой:

mkdir bin

Переместите свой сценарий в Ваше новое bin каталог и Вы все установлены. Теперь просто необходимо ввести:

my_script

и Ваш сценарий будет работать.

1
ответ дан 27 April 2013 в 02:35

Я рекомендовал бы функцию псевдонима вместо этого. Другие подходы работают, но они не избавляются от ".sh" расширения, как Вы хотели.

Это может также смешать с системой пути, если Вы забыли добавлять $ {ПУТЬ}: в ПУТЬ экспорта.

можно ввести:

тест псевдонима = "/your/path/to/file/test.sh"

, Если это работает правильно, необходимо добавить его в .bashrc файл:

sudo gedit ~/.bashrc копируют Вашу команду псевдонима в конце файла.

или более быстрый путь (необходимо уделять внимание):

эхо "псевдоним тестирует =/path/to/folder/text.sh">> .bashrc

, Просто не забывайте использовать>>, если только> использовался, это повторно обошьет весь файл металлическим листом только с командой эха.

и наконец

источник ~/.bashrc

для обновления команд .bashrc.

Псевдоним может быть еще более мощным, так как можно добавить некоторые входные опции как, например, ниже:

псевдоним gaussview ='XLIB_SKIP_ARGB_VISUALS=1$GV_DIR/gview "$" '

я надеюсь, что Вы находите это полезным.

0
ответ дан 3 December 2019 в 07:11

Другие вопросы по тегам:

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