【问题标题】:transform file content into array or grep for values将文件内容转换为数组或 grep 值
【发布时间】:2016-11-11 04:30:54
【问题描述】:

我有一个包含配置信息的文件和一个读取该文件的 shell 脚本。我想将值移交给 bash 脚本。

文件.txt

varNumber=1.1.1
varName=testThis
varFile=~/myDir/mySubDir/output.zip

myShellScript.sh

FILENAME="~/myDir/mySubDir/output.zip" <- this is what I expect from grep/awk
startNextScript.sh -f $FILENAME

我想将变量提取为关联数组,或者 - 如果更容易 - 为它们提取 grep, 但是由于我不习惯在 bash 中编写这样的命令,所以我正在寻求帮助!

【问题讨论】:

  • 请问您为什么不想获取该配置文件?
  • 是的,你可以 ;-) 但我可能无法给你一个好的答案......读取/转换文件/使用变量和采购之间有什么区别?
  • 您的file.txt 已经包含变量赋值。如果您在脚本中使用source file.txt,那么这些变量将对您的脚本可用。

标签: arrays bash awk grep associative-array


【解决方案1】:

在 bash 中使用关联数组:

#!/bin/bash
declare -A vars
while read -r line ; do
    var=${line%%=*}     # Remove everything after the first =.
    value=${line#*=}    # Remove everything before the first =.
    vars[$var]=$value
done < file.txt

echo Number: ${vars[varNumber]}
echo Name: ${vars[varName]}
echo File: ${vars[varFile]}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-01-16
    • 1970-01-01
    • 2011-12-23
    • 1970-01-01
    • 2017-06-01
    • 2011-11-10
    • 2018-03-28
    相关资源
    最近更新 更多