我有一个脚本script.sh但是我很懒如果运行时必须通过文件所在的文件夹打开并以./script.sh的方式运行它,
如何让我的脚本使用关键字?
我有一个 script.sh 文件
如果我把它写在命令中
然后“testscript”将打开 script.sh 文件
请帮助
答案1
这个很简单,但我假设你还不知道别名。
别名是将自定义命令转换为实际运行命令的方法。它们非常方便。
打开你的主目录并创建一个名为的纯文本文件.bash_aliases
。继续并保存它 - 但将其保持在编辑器中打开。
现在,想出一个你想用来执行脚本的单词或短语。就我而言,我使用了test
。
在我的 Documents 目录中,我创建了一个名为的文件test.sh
,其中包含:
echo "This is a test script!"
笔记您将要记住让您的脚本可执行。您可以使用chmod +x
或在 GUI 中通过右键单击/属性菜单选项来执行此操作。
现在,回到你的.bash_aliases
文件中,你需要将其添加为命令。在我的例子中,它看起来像这样:
alias test="./Documents/test.sh"
笔记在所有这些情况下,“.”和大写字母都是必不可少的。它区分大小写。
现在,您需要告诉系统查找(并重新加载任何新的)别名。这可以在终端中使用以下命令完成:
source ~/.bash_aliases
完成所有这些之后,我可以这样做:
$ test
This is a test script
如您所见,您正在告诉它别名的位置并重新加载它们。每次添加新别名时,您都需要运行它才能使用它们。
编辑:虽然上述方法可行,但只有当终端在您的目录中打开时才有效/home/user/
。这很好,而且这是大多数终端打开的默认位置,但并非所有终端工作都在该目录中完成。
答案是这样的:
$HOME/Documents/test.sh
现在,无论您在哪个目录中,您都可以输入test.sh
,它都会起作用。这不需要提升权限,并且脚本只能使用您的用户权限或您在执行时授予的任何其他权限来运行。
如果必须选择的话,我会选择这种方法 - 使用用户的主目录变量$HOME
(再次区分大小写)作为普通用户可以设置、配置、使用它等...它不需要根访问权限或任何额外的权限。
正如本答案其他地方所述,有多种方法可以实现此目的。选择最适合您需求且需要最少权限的方法。
方法 2:
我感到无聊并决定添加另一种方式。
在使脚本可执行后,您可以移动脚本usr/bin
并将其变为命令。就我而言,我使用了 GUI。
在终端中,我输入:
sudo pcmanfm
然后,我只需将 test.sh 复制到usr/bin
- 它保留了我之前申请的可执行权限。
此时,我只需使用test.sh
它即可。
我对此并不满意,所以我将其重命名为纯文本test1
,并从文件名中删除了 .sh。Linux 并不太在意扩展名。我无法命名它,test
因为目录中已经有一个测试usr/bin
。所以,test1
这就是我命名它的名称。显然,您可以随意命名它,只要它不与其他文件名冲突即可。
现在,从终端来看,它的工作方式如下:
$ test1
This is a test script
如您所见,有多种方法可以实现此目的。我最喜欢别名方法,因为它不需要任何提升的权限,而且我非常喜欢“最低权限”方法。