我正在开发一个脚本来配置和设置 ubuntu-desktop 环境。它所做的更改之一是将函数和其他内容附加到~/.bashrc文件中。在脚本的后面,我需要调用添加到的函数之一,~/.bashrc但command not found出现错误。这是一个示例脚本:
# t.sh
#!/bin/bash
text='test-func() { echo It works!; }'
echo "$text" >> ~/.bashrc
source ~/.bashrc
test-func
echo checkpoint
Run Code Online (Sandbox Code Playgroud)
输出:
./t.sh: line 10: test-func: command not found
checkpoint
Run Code Online (Sandbox Code Playgroud)
我认为采购~/.bashrc会更新外壳,允许我调用,test-func但事实并非如此。谷歌搜索我发现exec bash替换source ~/.bashrc.
新输出:
./t.sh: line 10: test-func: command not found
Run Code Online (Sandbox Code Playgroud)
根据我对 的理解exec,它只是创建了一个切断脚本的新外壳;因此“检查点”永远不会被打印出来。
如何~/.bashrc在同一脚本中更新和运行更新?
任何帮助深表感谢。