我正在寻找一种更容易pipe理我的$PATHvariables的方法。
执行$PATH返回我:
/usr/local/bin:/usr/local/sbin:/usr/local/mysql/bin:/opt/local/bin:/opt/local/sbin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin: No such file or directory
对我来说,这是完全废话,难以阅读。
他们可以像这样列出:
/usr/local/bin: /usr/local/sbin: /usr/local/mysql/bin: /opt/local/bin: /opt/local/sbin: /usr/bin:/bin: /usr/sbin: /sbin: /usr/local/bin: /usr/X11/bin: No such file or directory
我很想用Ruby来pipe理我的$ PATH,但自然,它看起来像我需要留在我的shellconfiguration文件的一部分。
你可以在多行上列出你的pathspec,如下所示:
PATH=\ /a:\ /b:\ /c:\ /d
你也可以通过做你的path追加东西
PATH=${PATH}:/new:/stuff
所以你可以有
PATH=/a PATH=${PATH}:/b (etc)
冒着听起来像一个古老的* NIXpipe理员的风险,请不要做怪异和时髦的事情,比如写一个ruby脚本来为你pipe理PATH – 你不会经常编辑它(如果你是你可能做错了事情),而且在这种情况下你会更好地遵守与其他人相同的标准,特别是当你需要寻求帮助的时候。
以冒号分隔的path列表在世界上发现的格式不正确的macros程序中并不那么可怕:-)
echo $PATH | sed 's/:/:\n'
你可以按照以下方式做一些事情:
PATH=$(ruby_prog $PATH)
在启动脚本(或其他源代码的脚本)或shell提示符下。
$ PATH需要看起来是这样的,尽pipe你可以使用反斜线(未经testing,没有* nix或Linux机器可用)跨线路分割它。
你为什么不写一个Ruby脚本来parsing它,并使其可读,并允许你编辑它? 这将是一个不错的小项目。
如果你的服务器有Perl,并且你不介意使用它,那么你可以尝试这个单行显示你的PATH(不pipe理它):
printenv PATH | perl -nl -0x3A -e 'print ++$i, " ", $_;'
我在我的技术博客上写了这个细节。
在大多数服务器上,我们有64位和32位应用程序环境。
所有的32位编译成/ opt / 32,所有的64位都编译成/ opt / 64。
然后在两个文件夹中都有一个“set_env”脚本,它们设置相关的PATH和LD_LIBRARY_PATHvariables。 如果我们想运行32位的东西,我们input
. /opt/32/set_env
或64位:
. /opt/64/set_env
正如voretaq7所build议的那样,格式如下所示:
export PATH="\ /opt/32/app1/bin:\ /opt/32/app2/bin:\ /opt/32/app3/bin"
(在64位脚本中将64replace为32)。
只是不要做我最初做的事情,并缩进行,因为那么它变成“/ opt / 32 …” – 注意空间,这是不是一个有效的文件系统path!