我编写了一些脚本并将它们存储在我的~/bin
文件夹中。我已经能够通过在 shell 会话期间调用它们的标题来运行它们。但是,它们不是交互式运行(我的意思是,我的~/.bashrc
别名没有加载)。
有没有办法将它们标记为默认交互式运行?或者我必须source ~/.bashrc
在它们内部使用那里定义的任何别名?
欢迎其他替代方案!
答案1
如果您将该-i
选项添加到 hashbang(s) 中,它将指定脚本以交互模式运行。
#!/bin/bash -i
或者,您可以使用该选项调用脚本:
bash -i /path/to/script.sh
答案2
采购你的产品.bashrc
并不是一个好主意。您可以.bash_alias
使用别名创建一个文件,然后在脚本中获取该文件并使用shopt
就像是:
shopt -s expand_aliases
source ~/.bash_alias
Bash 手册页指出:
当 shell 非交互式时,别名不会扩展,除非使用 shopt 设置 Expand_aliases shell 选项(请参阅下面的 SHELL BUILTIN COMMANDS 下的 shopt 描述)。