【问题标题】: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 这样的一行,我该怎么办?
    • @reza 你有没有像我提到的那样引用你的变量?
    【解决方案3】:

    对于执行命令并在bash脚本中返回结果以保存在变量中,例如,您必须将命令内部写入var=$(command)。并且你不能在 var,'=' 和 $() 之间给出空格。看看这个

    TEXT=$('cat configure.ac')
    

    现在,echo $TEXT 通过文件 configure.ac 返回内容。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-04-24
      • 2015-03-23
      • 1970-01-01
      • 2016-10-25
      • 1970-01-01
      • 2020-06-30
      • 1970-01-01
      相关资源
      最近更新 更多