【问题标题】:save a text file in a variable in bash将文本文件保存在bash中的变量中
【发布时间】:2012-02-27 02:42:43
【问题描述】:
如何读取文本文件并将其保存到 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
【问题讨论】:
标签:
linux
bash
shell
terminal
【解决方案1】:
试试
TEXT=`cat configure.ac`
应该可以的。
编辑:
为了澄清,区别在于间距:在TEXT 之后放置一个空格会导致 bash 尝试将其作为命令进行查找。
【解决方案2】:
问题是你有一个额外的空间。赋值要求= 运算符之间有零个空格。但是,使用bash,您可以使用:
TEXT=$(<configure.ac)
您还需要确保引用变量以保留换行符
CHANGED_TEXT="${TEXT//ProjectName/$PROJECT_NAME}"
echo "$CHANGED_TEXT"
【讨论】:
-
它工作了,但它有一个问题:缺少行。所有字符都变成了像this 这样的一行,我该怎么办?
-
【解决方案3】:
对于执行命令并在bash脚本中返回结果以保存在变量中,例如,您必须将命令内部写入var=$(command)。并且你不能在 var,'=' 和 $() 之间给出空格。看看这个
TEXT=$('cat configure.ac')
现在,echo $TEXT 通过文件 configure.ac 返回内容。