bash - 如何在 Raspbian GNU/Linux 10 上永久设置 $PATH
问题描述
我想将我的 samba 二进制路径存储到$PATH
我的 rpi4 上的全局变量,但它没有按预期工作。我在文件samba-binary-path.sh
夹中创建了一个文件/etc/profile.sh
并使其具有chmod +x
可执行文件。
该文件samba-binary-path.sh
包含以下内容:
export PATH=/usr/local/samba/bin/:/usr/local/samba/sbin/:$PATH
此外,我export PATH=/usr/local/samba/bin/:/usr/local/samba/sbin/:$PATH
还保存在文件中/etc/environment
。
现在是疯狂的部分。当我在我的 cli 上执行我的脚本时,它按预期工作,但是当它从另一个进程启动时,路径变量缺少我的 samba 二进制路径。
受影响的代码块:
#!/bin/bash
BINDIR=$(samba -b | grep 'BINDIR' | grep -v 'SBINDIR' | awk '{print $NF}')
[[ -z $BINDIR ]] && printf "Cannot find the 'samba' binary, is it installed?"
出于调试目的,我将$PATH
变量通过管道传输到/var/log/syslog
.
结果如下:
- 在cli上执行:
$PATH=/usr/local/samba/bin/:/usr/local/samba/sbin/:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
- 从其他进程执行:
$PATH=/sbin:/bin:/usr/sbin:/usr/bin
我在哪里指定路径以便始终可以找到 samba 二进制文件?
问候,
罗尼
解决方案
如何在 Raspbian GNU/Linux 10 上永久设置 $PATH
要为所有可能没有明确设置的环境显式永久更改 PATH ,例如不从父进程PATH
继承的新的非交互式非登录 shell,请使用不同的DEFAULT_PATH_VALUE值重新编译 bash (如果我没记错)。PATH
./configure
我在哪里指定路径以便始终可以找到 samba 二进制文件?
您在脚本中指定它。
PATH=$PATH:/some/path
# or explicitly
bindir=$(/the/path/to/samba -b ....)
您还可以在运行脚本时显式调用登录 shell,从而获取资源/etc/profile*
。
推荐阅读
- postgresql - PostgreSQL 中重叠间隔的最大计数
- python - flask_sqlalchemy 关系问题,
- git - Git-Flow - “独立组件” - 如何?
- rest - 如何将移动应用离线状态与远程数据库同步?
- javascript - date-fns/parse 无效日期
- css - 如何在 Bootstrap 中将导航栏切换按钮和徽标移动到左侧?
- javascript - 如何从保存在 localStorage 中的表中删除一行?
- reactjs - 如何使用 React Context API 跨多个 Routes 拥有状态?
- python - LSTM 正则化器
- vb.net - VB.NET 接收 Webhook