首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >作为列表的变量

作为列表的变量
EN

Stack Overflow用户
提问于 2015-02-23 16:58:57
回答 2查看 80关注 0票数 0

我是在Solaris 2.10与ksh“版本M-11/16/88i”。

我对"for“中的列表有一些问题。

第一个示例按我的要求工作:

代码语言:javascript
复制
#!/bin/ksh
for i in ONE "one is 1" TWO "two is 2" THREE three
do
echo $i
done

这方面的产出如下:

代码语言:javascript
复制
> ./mytest.ksh 
ONE
one is 1
TWO
two is 2
THREE
three
> 

但是,如果我将代码更改为这样的内容:

代码语言:javascript
复制
#!/bin/ksh
MYVAR="ONE \"one is 1\" TWO \"two is 2\" THREE three"
echo "MYVAR=$MYVAR"
for i in $MYVAR
do
echo $i
done

然后输出是:

代码语言:javascript
复制
> ./mytest.ksh 
MYVAR=ONE "one is 1" TWO "two is 2" THREE three
ONE
"one
is
1"
TWO
"two
is
2"
THREE
three
>

如何将值保存在变量MYVAR中,以便循环正确地接受它?谢谢。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-02-23 17:12:40

以下是一种方法:

代码语言:javascript
复制
#!/bin/sh
MYVAR="ONE \"one is 1\", TWO \"two is 2\", THREE three"
export IFS=",";
echo "MYVAR=$MYVAR"
for i in $MYVAR
do
echo $i
done
票数 0
EN

Stack Overflow用户

发布于 2015-02-23 17:08:23

试着在回音时引用如下:

代码语言:javascript
复制
MYVAR="ONE \"one is 1\" TWO \"two is 2\" THREE three"
echo "MYVAR=$MYVAR"
for i in "$MYVAR"
         ^      ^
do
    echo $i
done    
Output:
MYVAR=ONE "one is 1" TWO "two is 2" THREE three                                                                        
ONE "one is 1" TWO "two is 2" THREE three                                                                                                         
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28679094

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档