如何处理shell脚本中的文本并分配给varibles?

时间:2017-11-22 07:23:25

标签: shell awk sed

sample.text文件。

var1=https://www.process.com
var2=https://www.hp.com
var3=http://www.google.com
:
:

varz=https://www.sample.com

我将此示例txt作为输入发送到一个脚本。 该脚本应该拆分行并将变量分配给diff参数

喜欢

$varn= $var1,....$varn
$value=https://www.sample.com ( all the variables value)

我正在尝试使用以下脚本无效。

#!/bin/bash
for $1 in ( cat sample.txt );
do 
 echo $1 #var1=https://www.process.com
 sed 's/=/\n/g' $1 | awk 'NR%2==0'
done

主要目的是将所有网址分配给一个变量,将变量分配给一个变量并处理文件

1 个答案:

答案 0 :(得分:2)

如果sample.text已包含您的变量分配,例如

var1=https://www.process.com
var2=https://www.hp.com
var3=http://www.google.com

并且您希望访问var1, var2, ... varn,然后您通过尝试阅读和解析sample.text而不是简单地采购'.'来解决问题}或source

例如,给定sample.text包含:

$ cat sample.text
var1=https://www.process.com
var2=https://www.hp.com
var3=http://www.google.com
varz=https://www.sample.com

您只需要获取文件来访问变量,例如

#!/bin/bash

. sample.text || {
    printf "error sourcing sample.text\n"
    exit 1
}

printf "%s\n" $var{1..3} $varz

示例使用/输出

$ bash source_sample.sh
https://www.process.com
https://www.hp.com
http://www.google.com
https://www.sample.com

仔细看看,如果您有其他问题,请告诉我。