我是terminator的当前用户&oh-my-zsh。在 teminator 中,我尝试使用多个选项卡和每个选项卡的初始命令设置我的自定义布局。我按照此处描述的说明进行操作 https://amir.rachum.com/blog/2015/11/28/terminator-multiple-custom-commands/主要部分是.zshrc中的这个脚本
echo $INIT_CMD
if [ ! -z "$INIT_CMD" ]; then
OLD_IFS=$IFS
setopt shwordsplit
IFS=';'
for cmd in $INIT_CMD; do
print -s "$cmd" # add to history
eval $cmd
done
unset INIT_CMD
IFS=$OLD_IFS
fi
一切正常,除了初始脚本中的命令没有存储在我的 zsh 历史记录中。如果我直接在 zsh 中执行命令,它也可以正常工作。我的猜测是执行命令后加载的历史文件。
bash的简单解决方案
附加;猛击给你自定义命令
例: 将redis-server
更改为redis-server; bash
解决方案(bash(
echo $INIT_CMD
if [ ! -z "$INIT_CMD" ]; then
OLD_IFS=$IFS
IFS=';'
for cmd in $INIT_CMD; do
history -s "$cmd" # add to history
eval $cmd
done
unset INIT_CMD
IFS=$OLD_IFS
# ----------------required to refresh the shell session
history -a # append history lines from this session
# to the history file
history -r # read the history file and append the
# contents to the history list
fi
解决方案(zsh(
echo $INIT_CMD
if [ ! -z "$INIT_CMD" ]; then
OLD_IFS=$IFS
setopt shwordsplit
IFS=';'
for cmd in $INIT_CMD; do
print -S "$cmd" # add to history
eval $cmd
done
unset INIT_CMD
IFS=$OLD_IFS
fi