从文件中读取多个字符串作为不同的变量。

时间:2015-11-08 14:43:29

标签: file shell scripting

继续How to read multiple strings in a file as a different variables: -

file.conf:

####
#xyz

key name


/usr/bin/ /text/abc/

value pswd

现在我想写一个脚本来拥有两个变量,如上面的

script.sh

key="name"      #key as variable
value="pswd"    #value as variable
/usr/bin/=/text/abc/    

有关详细信息,请参阅上述链接。

1 个答案:

答案 0 :(得分:0)

您必须有办法忽略有效的unix变量名称的无效条目行。 unix变量遵循以下规则:

  

以下划线或字母开头,后跟0或更多字母数字或下划线

使用此规则,您可以在BASH中使用此脚本:

<img id="imagePlaceholder" src="http://ww1.prweb.com/prfiles/2014/04/10/11752526/gI_134971_best-image-web-hosting.png" />
<div id="imageLinks">
  <a href="#" onclick="changeImage(event);"><img src="https://pbs.twimg.com/profile_images/1239356116/TwitterBirdCool_400x400.JPG" /></a>
  <a href="#" onclick="changeImage(event);"><img src="http://www.kampfkunst-centrum.de/assets/images/Cool-Kids.jpg" /></a>
  <a href="#" onclick="changeImage(event);"><img src="http://img02.deviantart.net/9dd3/i/2012/345/e/7/cool_and_wild_cat_by_design_by_humans-d5nqtl8.jpg" id="wrong" /></a><a href="#" onclick="changeImage(event);"><img src="https://pbs.twimg.com/profile_images/579982585138405378/daYox4Wy.jpg" /></a>
</div>

这将忽略以#或while read k v; do [[ $k =~ ^[_[:alpha:]][[:alnum:]_]*$ ]] && declare $k="$v" done < conf.file 等开头的所有空白行或行。

在ksh中试试这个:

/usr/bin