С zsh
:
print -r -- "${(e)$(<reports/my_report.sql)}"
С любой подобной Границе оболочкой (включая zsh
):
eval "cat << EOF
$(cat reports/my_report.sql)
EOF"
Оба расширятся весь `...`
, $(...)
, $((...))
, $[...]
, $xxx
и ${xxx}
. Таким образом, необходимо будет выйти из доллара и символов обратной галочки, Вы не хотите расширенный.
Кроме того, для второго, содержание файла не должно содержать строку, состоящую из этих трех символов EOF
(который для SQL
не должна быть проблема).
С другой стороны, Вы могли сделать:
perl -pe 's/\${(\w+)}/$ENV{$1}/g' reports/my_report.sql
Вы должны будете export
переменные, для perl
знать о них.
Относительно того, почему Ваше решение не работает и далеко не работает, можно выполнить его после set -x
для наблюдения, что продолжается:
$ echo "SELECT ${sql_year} AS year" | sed -e "s/\(\${[a-zA-Z_]*}\)/`eval "echo '\1'"`/"
+ echo 'SELECT 2013 AS year'
++ eval 'echo '\''\1'\'''
+++ echo '\1'
+ sed -e 's/\(${[a-zA-Z_]*}\)/\1/'
SELECT 2013 AS year
При помощи двойных кавычек оболочка разворачивает переменные и замену команды перед вызовом echo
и sed
. Так, Вы на самом деле работали:
echo 'SELECT 2013 AS year' | sed -e 's/\(${[a-zA-Z_]*}\)/\1/'
sed
не может выполнить код. Таким образом, даже если Вы использовали одинарные кавычки, sed
не расширился бы `...`
.
Файлы ISO не могут быть смонтированы, а затем записаны. ISO 9660 - файловая система только для чтения.
Таким образом, вам нужно разместить файл casper-rw
(это единственный файл с файловой системой внутри) в месте, которое физически находится на USB-накопителе.
Веб-сайт Pendrive Linux показывает некоторые подробности о том, как создать файловую систему casper-rw
. Статья называется: Создайте в Linux файл цикла casper-rw большего размера . ПРИМЕЧАНИЕ: Файловая система casper-rw
- это просто обычная файловая система, спрятанная внутри одного файла. В этом примере они используют внутри файловую систему EXT3.
Создание образа "casper-rw"
$ dd if = / dev / zero of = casper-rw bs = 1M count = 1024
1024 + 0 записей в {{1 }} 1024 + 0 записей из
1073741824 байта (1,1 ГБ) скопировано, 10,958 с, 98,0 МБ / с
$ ls -l casper-rw
- rw-rw-r--. 1 saml saml 1073741824 2 апреля 19:56 casper-rw
Отформатируйте его как EXT3
$ mkfs.ext3 -F casper-rw
mke2fs 1.42.7 (21-янв- 2013 г.)
Отказ от блоков устройств: готово
Метка файловой системы =
Тип ОС: Linux
Размер блока = 4096 (log = 2)
Размер фрагмента = 4096 (log = 2)
Шаг = 0 блоков, ширина полосы = 0 блоков
65536 инодов, 262144 блока
13107 блоков (5,00%) зарезервированы для суперпользователя {{ 1}} Первый блок данных = 0
Максимальное количество блоков файловой системы = 268435456
8 групп блоков
32768 блоков на группу, 32768 фрагментов на группу
8192 инода на группу { {1}} Резервные копии суперблока, хранящиеся в блоках:
32768, 98304, 163840, 229376
Размещение групповых таблиц: выполнено
Запись таблиц inode: выполнено {{1 }} Создание журнала (8192 блока): готово
Запись суперблоков и информации учета файловой системы: выполнено
Смонтировать
$ sudo mount -o loop casper-rw / mnt / {{ 1}}
Проверьте это
$ ls / mnt /
lost + found
$ df -h / mnt /
Размер используемой файловой системы Доступно Использование% Установлено на
/ dev / loop0 976M 1,3M 924M 1% / mnt
Easy2Boot поддерживает постоянство для нескольких ISO. Примеры можно найти в папке _ISO \ docs \ Sample mnu files. Вы можете иметь много ISO-файлов с постоянным хранением на одном USB-накопителе. Посмотрите на веб-сайт www.easy2boot.com и www. Веб-сайт .rmprepusb.com. http://www.easy2boot.com/add-payload-files/persistence/