Necesitas
touch "${toto}hihi.log"
El problema es que el shell no puede saber sin las llaves cuántos caracteres forman parte del nombre de la variable. Por lo tanto, trata todos los caracteres legales como parte del nombre. En este caso eso es todo antes del .
; es decir, el shell usa la variable no -existente $totohihi
.
En general, ayuda usar la opción de shell -x
para ver qué está pasando:
set -x
touch "$totohihi.log"
+ touch.log
Насколько я знаю, вам не нужно помещать исходный код /etc/environment
в /etc/profile
, потому что это не сценарий оболочки.
Он должен содержать только key=value
пары (без"
). Кроме того, /etc/environment
не заменяет здесь переменные, подобные $JAVA_HOME
.
/etc/environment
загружается при загрузке, поэтому вам нужно перезагрузиться, и он будет доступен для всех пользователей.
В этой ссылке есть примечание, в котором конкретно говорится, что расширение переменных не работает в /etc/environment
:
Note: Variable expansion does not work in /etc/environment.