如何使shell脚本全局化?

zeb*_*man 65 unix macos shell

我在Mac的OS 10.6上,我正在尝试学习关于shell脚本的一两件事.我理解如何保存shell脚本并使其可执行,但我想知道我可以做什么或者我可以保存文件以使其全局化(也就是说,无论我在哪个文件夹都可以访问).

例如,如果我将.sh文件保存在/ Users/username /目录中并使其可执行,我只能在该特定目录中执行该脚本.例如,如果我导航到/ Users/username/Downloads,我就无法执行脚本.

此外,任何有关shell脚本学习的资源建议都会有所帮助.谢谢

unb*_*eli 114

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


Bry*_*ley 36

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

如果将其放入~/bin,则可能需要将其添加到PATH环境变量中./usr/local/bin应该已经在路上了.


Piq*_*qué 19

有两种方法可以做到 -

  1. 将您的脚本放在usr/local/bin中并确保它是可执行的(chmod + x my_script)(这已在路径中设置,您可以通过执行echo $ PATH来检查)
  2. 在主目录中创建一个名为bin的文件夹.(对于您的个人脚本)
    • cd~(带你到你的主目录)
    • mkdir bin(创建一个bin文件夹)
    • vim .bash_profile(设置路径环境变量)
    • export PATH =〜/ bin:$ PATH(按i然后添加此行然后执行esc并输入:wq)
    • 现在,您只需键入脚本的名称,然后从任何位置运行它.

  • 由于您现在可能正在使用 zsh,因此您可能需要采取不同的方法。通过创建内容为 ```/Users/<some-username>/bin`` 的文件 /etc/paths.d/MyScripts 将您的个人 bin 目录添加到路径中 (2认同)

Ano*_*usX 8

如果您熟悉 bashrc 文件,这将非常简单!这将完全使用您的 .bashrc 文件,并且需要 2 秒钟才能完成。

(我使用 Arch Linux Manjaro,所以我使用位于我的主目录中的 .bashrc)

要放置在 .bashrc 文件中的代码:

# Simple bashrc method to launch anything in terminal from any directory

YOURCOMMAND () {
  cd /path/to/directory/containing/your/script/ && ./YOURSCRIPT
}
Run Code Online (Sandbox Code Playgroud)

如您所见,首先使用简单的“cd”命令并为其提供脚本位置的目录,然后使用“&&”以便您可以立即执行下一个命令,最后像您一样打开脚本通常情况下!超级简单并保存在您的 .bash 文件中!:)

希望我已经帮助别人了!

真挚地,

匿名X


She*_*mad 5

在 mac 操作系统中

  • 打开 bash ~/.bashrc 文件。
  • 在 bashrc 文件中添加脚本的路径,使用 export PATH="$PATH:/Users/sher.mohammad/Office/practice/practiceShell"
  • 打开你的~./bash_profile文件并添加[[ -s ~/.bashrc ]] && source ~/.bashrc
  • 打开新的终端窗口现在每当您打开终端时,您的脚本都会被加载