Вы можете использовать управляющую последовательность(\n
)для вставки новой строки. Обратите внимание, что
sed -i "/#variables/i \
$var1\n$var2\n$var3" /data1/create_database
эквивалентно
sed -i "/#variables/i $var1\n$var2\n$var3" /data1/create_database
поэтому вам понадобится двойная обратная косая черта
sed -i "/#variables/i\\
$var1\n$var2\n$var3" /data1/create_database
Возможно также рассмотреть несколько выражений, чтобы сделать команду одной строкой, где каждое выражение фактически является строкой.
sed -i -e '/#variables/i\' -e "$var1\n$var2\n$var3" /data1/create_database
И, наконец, вам может понадобиться экранировать ваши переменные
var1=$(echo "database1=" | sed 's/[]\/$*.^&[]/\\&/g')
var2=$(echo "database2=" | sed 's/[]\/$*.^&[]/\\&/g')
var3=$(echo "database3=" | sed 's/[]\/$*.^&[]/\\&/g')
sed -i -e '/#variables/i\' -e "$var1\n$var2\n$var3" /data1/create_database
Это работает после того, как я изменил файловую систему диска на xfs, теперь мои точки монтирования выглядят такUUID=f955e00b-4141-45e9-bacd-9e36012e19fb /opt xfs defaults,nofail 0 2
Проблема в файловой -системе. vfat
не поддерживает обязательные атрибуты.
vfat
— это старая файловая система MS -. Unix использует расширенные возможности файловой системы -, которых нет vfat
и NTFS
.
В частности, chrome использует установленный -бит uid. Могут быть и другие.