Запуск цикла в zsh, как показано ниже, дает пустые строки на выходе (игнорируйте тривиальность этого цикла, это просто пример. Более реалистичный пример может быть запущен mysql -s -e "show databases;"
и делать что-то для каждой базы данных).Пустые строки в цикле zsh
for foo in $(cat test.txt); do
echo $foo
done
alpha
bravo
charlie
delta
В этом примере, если test.txt
имеет четыре линии, появляются три пустые строки. Если бы у него было пять строк, появлялось четыре пустые строки. В моем примере MySql было бы меньше пустых строк, чем в базе данных MySql.
Что вызывает эти пустые строки и как я могу их предотвратить? Запуск того же скрипта в Bash не дает пустых строк.
Редактировать: Похоже, Oh My Zsh является виновником, хотя я до сих пор не понял, почему. Если я прокомментирую source $ZSH/oh-my-zsh.sh
в .zshrc
, пустые строки больше не отображаются.
Вы пробовали смотреть на результат своего скрипта с помощью 'set -x' или' #!/Bin/zsh -x' в начале его? – Alex
@Alex: Спасибо за предложение. Запуск 'set -x' выводит TON, большинство из которых происходит от Oh My Zsh. Я еще не решил проблему, но она ведет меня в правильном направлении. – Jimothy
вы можете установить 'set -x' перед кодом, который хотите просмотреть вывод отладки, и отключить его с помощью' set + x' after – Alex