我是终结者的当前用户&哦,我的-的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中执行命令,它也可以正常工作。我的猜测是执行命令后加载了历史文件。
答案 0 :(得分:0)
此解决方案( 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
答案 1 :(得分:0)
重击
的简单解决方案将; bash 附加到您的自定义命令
示例:
将redis-server
更改为redis-server; bash