OnWorks Linux 和 Windows 在线工作站

商标

工作站免费在线托管

<上一页 | 内容 | 下一页>

脚本文件位置

设置权限后,我们现在可以执行我们的脚本:



[我@linuxbox ~]$ 。/你好,世界

你好,世界!

[我@linuxbox ~]$ 。/你好,世界

你好,世界!


为了让脚本运行,我们必须在脚本名称之前使用显式路径。 如果我们不这样做,我们会得到这个:



[我@linuxbox ~]$ 你好,世界

bash: hello_world: 命令未找到

[我@linuxbox ~]$ 你好,世界

bash: hello_world: 命令未找到


为什么是这样? 是什么让我们的脚本与其他程序不同? 事实证明,什么都没有。 我们的脚本很好。 它的位置是问题所在。 回到第 11 章,我们讨论了 PATH 环境变量及其对系统如何搜索可执行程序的影响。 回顾一下,如果没有指定明确的路径,系统每次需要查找可执行程序时都会搜索目录列表。 这就是系统知道执行的方式

/bin/ls 当我们在命令行输入 ls 时。 /bin 目录是系统自动搜索的目录之一。 目录列表保存在名为 PATH 的环境变量中。 PATH 变量包含要搜索的以冒号分隔的目录列表。 我们可以查看PATH的内容:

脚本文件位置


[我@linuxbox ~]$ 回声 $ 路径

/home/me/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:

/bin:/usr/游戏

[我@linuxbox ~]$ 回声 $ 路径

/home/me/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:

/bin:/usr/游戏


在这里,我们看到了我们的目录列表。 如果我们的脚本位于列表中的任何目录中,我们的问题就会得到解决。 注意列表中的第一个目录,

/家/我/斌。 大多数 Linux 发行版将 PATH 变量配置为在用户的主目录中包含一个 bin 目录,以允许用户执行他们自己的程序。 因此,如果我们创建 bin 目录并将我们的脚本放在其中,它应该像其他程序一样开始工作:



[我@linuxbox ~]$ 目录 [我@linuxbox ~]$ mv hello_world 宾 [我@linuxbox ~]$ 你好,世界

你好,世界!

[我@linuxbox ~]$ 目录 [我@linuxbox ~]$ mv hello_world 宾 [我@linuxbox ~]$ 你好,世界

你好,世界!


确实如此。

如果 PATH 变量不包含目录,我们可以通过在我们的 的.bashrc 文件:


导出路径=~/bin:"$PATH"

导出路径=~/bin:"$PATH"


进行此更改后,它将在每个新的终端会话中生效。 要将更改应用到当前终端会话,我们必须让 shell 重新读取 的.bashrc 文件。 这可以通过“采购”它来完成:



[我@linuxbox ~]$ . .bashrc文件

[我@linuxbox ~]$ . .bashrc文件


点 (.) 命令是 资源 命令,一个 shell 内置命令,它读取特定的 shell 命令文件并将其视为来自键盘的输入。


图片

注意:Ubuntu(和大多数其他基于 Debian 的发行版)会自动添加

如果 ~/bin 目录在用户的 .bashrc 文件执行时存在,则将 ~/bin 目录添加到 PATH 变量。 因此,在 Ubuntu 系统上,如果我们创建 ~/bin 目录,然后注销并重新登录,则一切正常。


图片


 

OnWorks 的顶级操作系统云计算: