是否可以创建命令,将其放在一个文件中并在没有“./”的情况下运行?

Mas*_*gol 4 command-line scripts

如果我在这样的文件中创建一个脚本:

#!/bin/bash
echo "test"
Run Code Online (Sandbox Code Playgroud)

据我所知(作为新手)是将它放在某个文件夹中,然后使其可执行

chmod +x myscript
Run Code Online (Sandbox Code Playgroud)

然后用类似的东西执行它./myscript

我认为如果我必须为我创建的每个命令创建文件并不简单。我认为如果我可以将它放在单个文件中然后使其可执行而不./在我创建的每个命令前面添加它会更简单。是否可以?

Hon*_*nte 10

解决方案 1:Bash 函数

Bash 函数的行为与命令非常相似。您可以将函数放入 - 例如 - 您的 ~/.bashrc 文件中,例如

hello() {
   echo Hello World!
}
Run Code Online (Sandbox Code Playgroud)

然后你可以像任何其他命令一样运行它,只要你从你的 shell 启动它,而不是从 cron 作业、init 脚本等:

me@pc:~$ hello
Hello World!
Run Code Online (Sandbox Code Playgroud)

解决方案 2: ~/bin 目录

如果该目录存在,默认的 ~/.profile 文件会将 ~/bin 目录添加到您的路径中。因此,在您的主文件夹中创建一个 bin 目录,并将您的脚本放入该目录中。您仍然必须chmod +x在脚本上使用,但不必在它们前面加上 ./

创建完bin目录后不要忘记重新登录!