bash脚本无法导出为终端命令,sanitize命令未找到求助
解决bash脚本命令无法全局调用的问题
问题原因
- 直接用
bash docker-utils.sh运行脚本,脚本里的函数/别名只会在临时创建的bash子进程中生效,进程结束后就无法在当前终端调用。 chmod +x ./scripts是给scripts目录添加执行权限,对脚本本身的可执行性没有帮助。
解决步骤
1. 给脚本添加可执行权限
执行以下命令,给docker-utils.sh脚本添加可执行权限:
chmod +x ./scripts/docker-utils.sh
2. 让脚本内容在当前shell生效
不要用bash运行脚本,而是用source(或简写.)命令加载脚本,这样脚本里的函数、别名会直接在当前shell环境中生效:
source ./scripts/docker-utils.sh # 或者简写 . ./scripts/docker-utils.sh
执行完后,直接在终端输入sanitize就能调用脚本里的对应功能了。
3. 实现永久生效(可选)
如果希望每次打开终端都能直接使用这些命令,需要把加载脚本的命令添加到bash的配置文件中:
- 打开
~/.bashrc文件(Ubuntu等系统常用)或~/.bash_profile(macOS等系统常用):nano ~/.bashrc - 在文件末尾添加一行(替换成你的脚本实际绝对路径):
source /absolute/path/to/scripts/docker-utils.sh - 保存退出后,执行以下命令让配置立即生效:
source ~/.bashrc
内容的提问来源于stack exchange,提问作者Bruno Peixoto
相关产品推荐
相关产品推荐

