如何使一个shell脚本全球?

我在Mac的操作系统10.6,我想了解一些关于shell脚本的东西。 我知道如何保存一个shell脚本,并使其可执行,但我想知道我可以做什么或在哪里可以保存文件,使其全球(即,无论我在什么文件夹中可访问)。

例如,如果我将.sh文件保存在/ Users / username /目录中并使其可执行,那么我只能在该特定目录中执行该脚本。 如果我导航到/用户/用户名/下载,例如,我不能执行该脚本。

此外,任何有关了解shell脚本的资源build议都将有所帮助。 谢谢

/usr/local/bin将是最合适的位置。 Mac OS X默认使用PATH

传统上,这样的脚本要么进入~/bin (即:您的主目录中的bin目录)或/usr/local/bin/前者意味着脚本将只适用于您,后者适用于您希望任何人的脚本系统能够运行。

如果你把它放在~/bin ,你可能需要把它添加到你的PATH环境variables中。 /usr/local/bin应该已经在path上了。

有两种方法可以做到这一点 –

  1. 把你的脚本放在usr / local / bin中,确保它是可执行的(chmod + x my_script)(这已经在path中设置了,你可以通过echo $ PATH来检查)
  2. 在您的主目录中创build一个名为bin的文件夹。 (为了您的个人脚本)
    • cd〜(把你带到你的主目录)
    • mkdir bin(创build一个bin文件夹)
    • vim .bash_profile(设置path环境variables)
    • export PATH =〜/ bin:$ PATH(按i,然后添加这一行,然后执行esc并键入:wq)
    • 现在你可以input你的脚本的名字,并从任何你想要的地方运行它。

把它保存到/usr/bin (或PATH任何其他目录)或编辑PATH以包含保存在其中的目录,基本上可以在任何目录下运行。

在使用bash shell时,将该脚本编写为函数,然后将其放在.bashrc中,或者通过“source file_name”来源包含该函数的文件。

现在通过shell中的函数调用来执行脚本。

在mac中,1.导出脚本path,导出PATH =“$ PATH:”(例如/ Users / sher / practiceShell / bin)

  1. 在bashrc文件(〜/ .bashrc)中添加你的脚本。

你应该把它放在你机器上的全局可执行文件目录下。 我认为这通常是在基于Unix的操作系统上的/usr/bin (但是这通常需要在该机器上具有超级用户权限)。

您也可以将它放在$PATH环境variables中的任何其他目录中,但只适用于那些在该variables中具有该目录的用户。

您可以通过在shell中inputecho $PATH来find$PATH的值。 目录由 : 分隔