ZSH:用引号分割字符串

时间:2014-09-18 13:45:31

标签: split zsh substitution

有没有办法在ZSH中用引号分割字符串?

尝试以下操作时,我只是在没有拆分的情况下返回$ STRING:

STRING='imgdir="/path/to/my/images"'
VAR=${$(s/\"/)STRING}

背景是我有一个文件包含以下格式的数据,实际上我想轻松访问引号中的值:

imgdir="/path/to/my/images"
imgdir2="/path/to/my/images2"
testvalue="554"
[...] 

感谢您的帮助,

格哈德

2 个答案:

答案 0 :(得分:1)

如果文件只包含如图所示的赋值(并且没有非shell语法),则只需获取它:

. /path/to/file

然后,您在shell变量imgdirimgdir2testvalue,...中包含所有字符串值,并删除了引号。

编辑:如果有非shell语法,请首先使用grep进行分配:

grep -E '[a-z0-9_]+=".*"' > assignments
. ./assignments
rm assignments

答案 1 :(得分:0)

好的,回答我自己的问题:

eval $(grep "imgdir=" $FILE)

为我在这种情况下想做的事情做了诀窍:它分配一个变量" imgdir"用引号之间的内容......

原始问题仍然存在:如何将字符串拆分为引号......

/格哈德