Попробуйте скачать xzoom. Он есть в репозиториях и легче для вашей системы, чем kmag.
Чтобы фактически получить файл pippo
, вам необходимо выполнить:
cat > pippo <<EOF
Что перенаправляет значения из этого документа в файл с именем pippo
.
Затем, чтобы содержимое внутри документа-документа передавалось точно так, как написано, а не расширялось, оценивалось или изменялось, вам нужно заключить в кавычки слово после <<
.
Любое из этого (работают даже частичные кавычки):
<<'EOF'
<<"EOF"
<<\EOF
<<E"O"F
<<E\OF
Если нет кавычек, значение переменной «$ LOGFILE»
расширяется до своего значения, которое кажется быть нулевым в вашей среде и теряется.
Короче говоря, используйте что-то вроде этого:
cat > pippo << \_EOF_
LOGFILE=test.log
echo '#############################' >> $LOGFILE
_EOF_
Здесь документ по умолчанию подвергается расширению оболочки, а именно расширению параметров, подстановке команд и арифметическому расширению. Итак, в вашем случае происходит расширение переменной (параметра) - переменная LOGFILE
расширяется в текущей оболочке, и, поскольку переменная предположительно не существует, поэтому возвращается (и заменяется) значение null в качестве расширенного ценить.
Чтобы получить метасимволы оболочки буквально в данном документе, используйте кавычки вокруг строки терминатора:
cat pippo <<'EOF' ## "EOF" would do too
LOGFILE=test.log
echo '#############################' >>"$LOGFILE"
EOF
Также укажите расширение переменной, поскольку (предположительно) оно относится к имени файла, чтобы разделение слов и расширение имени пути не выполнялись на это после расширения.