Терминатор начальный скрипт - PullRequest
0 голосов
/ 15 мая 2018

Я текущий пользователь терминатора & 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, это также работает правильно. Я предполагаю, что файл истории загружается после выполнения моей команды.

1 Ответ

0 голосов
/ 31 мая 2018

Решение для этого ( 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
...