Terminal temam eskiden böyle,
Ama istemin çok fazla yer harcadığını düşündüm. Ve sonra her komut çalıştırışımda istemi temizleyebileceğim konusunda bir fikrim var. Ben bash kullanıyordum, çözümlerden biri preexec_invoke_exec
işlevi kullanmak .
Son komut satırlarını temizlemek için aşağıdaki komutu kullanıyorum:
echo -ne "\033[1A\033[K\033[1A\033[K\033[31;1m$ \033[0m"
Böylece terminal çok temiz, böyle,
Ama şimdi benim sorunum, bir satırda çoklu komutları kullanmak istediğimde , örneğin, kullandığımda sorun olacak for i in ...
.
İşte .bashrc'deki işlevin tam sürümü,
preexec () { echo -ne "\033[1A\033[K\033[1A\033[K\033[31;1m$ \033[0m"; echo -n "$1"; echo -ne " \033[37;2m["; echo -n "$2"; echo -ne "]\033[0m\n"; }
preexec_invoke_exec () {
[ -n "$COMP_LINE" ] && return # do nothing if completing
[ "$BASH_COMMAND" = "$PROMPT_COMMAND" ] && return # don't cause a preexec for $PROMPT_COMMAND
local this_command=`history 1 | sed -e "s/^[ ]*[0-9]*[ ]*//g"`;
local this_pwd=`pwd`;
preexec "$this_command" "$this_pwd"
}
trap 'preexec_invoke_exec' DEBUG
zsh
... ile başlar
for i in $(seq 1 10); do ls; done
ile yaparsanız , yineleme komutlarının çıktısı tabiri caizse "yutulur". Bu yüzden OP bu istemi etkinleştirirken davranışı sterilize etmek istedi. Bunu desteklememin sebebi kabukta farkındalık, kullanılabilirlik, geri bildirim ve taşınabilirlik konusuna ilgi. Önceki yorumuma koyduğum bağlantı, süper kullanıcıdaki gönderiye yol açıyor - bu snippet'i ilişkilendirme sorununa gittiler, bu yüzden bir tuzak işlevi şeklinde yerel zsh işlevselliğini (ki ilginç olduğunu düşünüyorum) taklit eden bir prototip buraya.