当我运行命令时,有没有办法获取一些 bash 脚本mc
?我想将其源自午夜指挥官的 bash 实例。我尝试过这样的事情
mc && . .bash_script.sh
但它不起作用。 Bash 似乎在之前的 Bash 实例中获取了脚本,因为在运行exit
命令后我看到它.bash_script.sh
已被获取。但在中午指挥官的命令行中它不可用。
答案1
man mc
, 搜索 ”bashrc” 关键字:
如果您使用的是 bash,您可以在 ~/.local/share/mc/ 中为子 shell 指定启动命令bashrc~/.local/share/mc/inputrc 文件中的文件和特殊键盘映射。 tcsh 用户可以在 ~/.local/share/mc/tcshrc 文件中指定启动命令。
因此,假设~/.bash_script.sh
是您的路径.bash_script.sh
,添加~/.local/share/mc/bashrc
包含以下内容的文件:
[xiaobai@localhost tmp]$ cat ~/.local/share/mc/bashrc
. ~/.bash_script.sh
[xiaobai@localhost tmp]$
发出mc
(或mc -U
)后,底部命令提示符将更改为当前时间。
然后按Ctrl-o进入子shell,灰色+git信息只有在你在这里发出第一个命令后才会生效(bug)。再次按Ctrl-o返回mc
主屏幕。
答案2
mc
运行~/.bashrc
。因此,我们可以.bash_script.sh
从内部运行您的~/.bashrc
.听起来您只想在内部获取脚本源mc
。在这种情况下,请测试设置的 shell 变量mc
,例如:MC_SID
。
因此,在您~/.bashrc
添加以下行:
[ "$MC_SID" ] && . .bash_script.sh
测试
要验证此方法是否有效,请从简单的事情开始。将以下行放入~/.bashrc
:
[ "$MC_SID" ] && date >>~/mc.log
接下来,启动 的一个实例mc
。然后运行ls ~/mc.log
看看这个文件是否存在。