сохраните текстовый файл в переменной в bash
Как я могу прочитать текстовый файл и сохранить его в переменной в bash ? мой код здесь :
#!/bin/bash
TEXT="dummy"
echo "Please, enter your project name"
read PROJECT_NAME
mkdir $PROJECT_NAME
cp -r -f /home/reza/Templates/Template Project/* $PROJECT_NAME
cd $PROJECT_NAME/Latest
TEXT = `cat configure.ac ` ## problem is here !!!
CHANGED_TEXT=${TEXT//ProjectName/$PROJECT_NAME}
echo $CHANGED_TEXT
3 ответов
проблема в том, что у вас есть дополнительное пространство. Назначение требует нулевых пробелов между =
оператора. Однако с bash
вы можете использовать:
TEXT=$(<configure.ac)
вы также хотите убедиться, что вы цитируете свои переменные, чтобы сохранить новые строки
CHANGED_TEXT="${TEXT//ProjectName/$PROJECT_NAME}"
echo "$CHANGED_TEXT"
попробовать
TEXT=`cat configure.ac`
это должно сработать.
Edit:
чтобы уточнить, разница заключается в интервале: поместите пробел после TEXT
заставляет bash попытаться найти его как команду.
для выполнения команды и возврата результата в скрипте bash для сохранения в переменной, например, необходимо записать команду inner в var=$(command). И вы не должны давать пробелы между var,'=' и $(). Посмотри на это!--3-->
TEXT=$('cat configure.ac')
теперь echo $TEXT
возврат содержимого по файлу configure.ac.