如何创建终端运行的“功能”

如何创建终端运行的“功能”

我有大约 10 条终端命令,用于与 Git 存储库和实时服务器同步。我怎样才能将它们归结为单个命令?这是脚本的用例吗?

步骤包括:

  • 导航到本地目录。
  • 将更改添加/提交/推送到 Git。
  • 通过 SSH 进入实时服务器。
  • 从 Git 同步更改。

答案1

是的,您可以使用脚本或 shell 函数。它们的编写方式基本相同 - 首先列出所有命令,就像手动运行一样,然后逐渐添加诸如检查错误之类的内容。


Shell 函数在 Shell 本身中配置,~/.bashrc位于狂欢(与 zsh 等类似),并且只能在交互式 shell 中使用。语法为name() { commands...; }

allthethings() {
    cd ~/things
    thing2 --whatever
    git thingify origin/master
}

注意:无论何时编辑~/.bashrc,只有在打开新终端时或使用“点”命令手动重新读取时才会重新读取:. ~/.bashrc

也可以在交互式 shell 中直接创建函数;只是它们不会被记住。


脚本是独立文件,通常在~/bin或中/usr/local/bin,以#!解释器行开头,然后是脚本本身 - 在 shell 脚本中,它几乎与编写函数完全相同;主要区别在于是否使用exitvs return,以及变量 & 是否cd影响交互式 shell。

#!/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"

相关内容