将文本文件保存在bash中的变量中

rez*_*eza 7 linux bash shell terminal

如何读取文本文件并将其保存为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
Run Code Online (Sandbox Code Playgroud)

Sie*_*geX 15

问题是你有一个额外的空间.分配在=操作员之间需要零空间.但是,bash您可以使用:

TEXT=$(<configure.ac)
Run Code Online (Sandbox Code Playgroud)

您还需要确保引用变量以保留换行符

CHANGED_TEXT="${TEXT//ProjectName/$PROJECT_NAME}"
echo "$CHANGED_TEXT"
Run Code Online (Sandbox Code Playgroud)


Gab*_*ant 5

尝试

TEXT=`cat configure.ac`
Run Code Online (Sandbox Code Playgroud)

那应该有效。

编辑:

澄清一下,区别在于空格:在后面添加一个空格TEXT会导致 bash 尝试将其作为命令查找。