Shell sabe que $toto
es una variable con valor 123456
.
Por lo tanto, dondequiera que encuentre $toto
lo reemplaza con 123456
.
Entonces, en el caso de $toto.hihi.log
, Shell reemplaza $toto
con 123456
ya que .
es como un operador de concatenación y crea un archivo como se esperaba.
Sin embargo, en el caso de $totohihi.log
, Shell no encuentra ninguna variable llamada $totohihi
y, por lo tanto, la reemplaza con una cadena vacía que da como resultado la creación del archivo .log
. Puede encontrarlo con ls -a
o ls.log
ya que los archivos que comienzan con .
son archivos ocultos y no se pueden ver con el comando simple ls
.
En caso de que necesite crear un archivo con el nombre 123456hihi.log
, deberá poner $toto
entre llaves como ${toto}hihi.log
como lo mencionaron otros en respuestas anteriores.
Если вы действительно хотите less
очищать экран при выходе, вы можете переопределить команду следующим образом
less() { command less "$@"; clear; }
С другой стороны, если вы хотите less
сохранить исходное содержимое экрана и восстановить его при выходе, это должно быть стандартным поведением. (Он управляется с помощью записей ti
и te
в TERMINFO
и/или TERMCAP
. Они устанавливаются в соответствии с типом терминала, как показано в echo $TERM
.)
Вы можете попробовать принудительно отключить опцию -X
с помощью
less -+X
Но если и это не сработает, предоставьте результат выполнения команды echo $TERM
, чтобы можно было определить значения ti
и te
и, следовательно, почему они не сохраняются. и восстановление экрана.