【问题标题】:How to run bash file with one word [duplicate]如何用一个单词运行bash文件[重复]
【发布时间】:2021-10-27 14:57:13
【问题描述】:

问题

我想更轻松地运行 bash 文件,我见过一些应用程序,您只需键入 word 即可执行脚本。

不用在终端输入~/folder/file.sh, 我只需输入a_word 即可运行该文件。

这可以用 bash 实现吗?

而且,这是在 RPiOS 的终端上,不知道是否不同。

【问题讨论】:

  • 使用别名。谷歌 bash 别名
  • @RedCricket, ...这是一个糟糕的建议。请参阅wooledge.org/~greybot/meta/alias——注意多年来#bash IRC 频道如何在有人询问别名“改用函数”时给出建议。

标签: linux bash shell


【解决方案1】:

你必须定义一个所谓的alias

编辑文件$HOME/.bashrc并添加alias a_word = '$HOME/folder/file.sh',然后注销并重新登录。

【讨论】:

  • 非常感谢!当它允许我时,我会把它作为答案。
  • 别名很可怕,任何人都不应该使用。它们在很多情况下都不起作用——你不能在 vim 中使用 find -exec some-alias 或运行 :! some-alias;并且它们在脚本中完全关闭。
  • 当不想使用脚本时,使用函数比使用别名要好。 a_word() { "$HOME/folder/file.sh" "$@"; } -- 函数可以导出到环境中,它们在脚本中工作,它们允许分支逻辑并让参数在非最终位置进行评估。唯一一次别名比函数好——而且这是一种非常罕见的情况——是如果你想扩展为使用 shell 语法的东西,这种方式是非法的,没有额外的内容,用户应该在别名本身之后键入.
【解决方案2】:

将文件保存到 PATH 中指定的位置。 /usr/local/bin/a_word(没有.sh)就是这种位置的一个很好的例子。确保它具有可执行权限并以 shebang 开头(如 #!/usr/bin/env bash)。

当您只想为自己的帐户安装某些东西时,通常的做法是创建一个 ~/bin 目录并将其添加到您的 PATH 中(例如在 ~/.bash_profile 中添加类似 PATH=$PATH:$HOME/bin 的内容)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-09-28
    • 1970-01-01
    • 2012-12-05
    相关资源
    最近更新 更多