Да, вы можете использовать либо скрипт, либо функцию оболочки. Они написаны практически одинаково - начните с простого перечисления всех команд, как если бы они выполнялись вручную, затем постепенно добавляйте такие вещи, как проверка на наличие ошибок.
Функции оболочки настраиваются в самой оболочке, в файле ~/.bashrc
для bash (аналогично zsh и т.д.) И могут использоваться только в интерактивной оболочке. Синтаксис name() { commands...; }
:
allthethings() {
cd ~/things
thing2 --whatever
git thingify origin/master
}
Примечание: При редактировании ~/.bashrc
он получает только перечитать при открытии нового терминала, или когда вы вручную перечитать его с помощью команды . ~/.bashrc
.
Функции могут быть созданы непосредственно в интерактивной оболочке; они просто не будут помнить.
Скрипты - это автономные файлы, обычно в ~/bin
или /usr/local/bin
, начинающиеся с #!
строка интерпретатора, за которой следует сам скрипт - в сценариях оболочки это почти то же самое, что и написание функции; в основном отличается тем, используете ли вы exit
против return
и влияют ли переменные и cd
на интерактивную оболочку.
#!/usr/bin/env bash
cd ~/things
thing2 --whatever
git thingify origin/master
Обратите внимание, что вам нужно выполнить chmod +x
файлы сценариев, прежде чем их можно будет запускать напрямую, без необходимости каждый раз указывать 'bash'. (Если вы используете #!/usr/bin/env python
, остальные будут интерпретироваться Python или Ruby или любым другим языком по вашему выбору.)
Также каталог скриптов должен быть указан в $PATH
. Пользовательские местоположения, такие как ~/bin
часто нужно добавлять вручную, редактируя ~/.profile
:
export PATH="$PATH:$HOME/bin"