shell 脚本之for

SUBDIR="joan joanna"

for subdir in $SUBDIR; 
do
echo "building " $subdir; 

done

结果:

building  joan
building  joanna

结果正常。

SUBDIR="1 2 3 4"

for subdir in $SUBDIR; 
do
echo "building " $subdir; 
done

结果:

building  1
building  2
building  3
building  4

结果正常。

若在定义变量列表时没加引号,就出现错误。如:

SUBDIR=joan joanna

for subdir in $SUBDIR; 
do
echo "building " $subdir; 

done

运行出现错误,无法通过。

SUBDIR=10
for subdir in $SUBDIR; 
do
echo "building " $subdir; 
done

结果:

building  10
正常。

SUBDIR=“10”
for subdir in $SUBDIR; 
do
echo "building " $subdir; 
done

结果:

building  10
正常。

总结:定义值,随后遍历定义的值中,对于数据列表需要用引号引起来;单个数据是否加引号无所谓。

定义列表变量还有一种写法:在in后直接写出变量列表。

for subdir in joan joaaa; 
do
echo "building " $subdir; 
done

结果正常:

building  joan
building  joaaa

若写成:

for subdir in "joan joaaa"
do
echo "building " $subdir 
done

结果:

building  joan joaaa

没有出现语法错误,但并没有得到我们需要的结果。

总结:in 后的列表如果加" ",会将其看做一个整体。

in后调用shell命令:

DIR= "/var"
cd  $DIR
for  in  $( ls  $DIR)
do
  echo  $k
done
结果:列出了/var目录下的目录或文件,相当于在var目录下ls

for k in $(seq 1 10)
do
  echo $k
done
结果打印了1~10

结论:对于for的对象,必须是一个已知的数据列表。 这个列表可以是给定的值,也可以是命令运行
以后的, 也可以是调用shell函数得到的。 若将列表赋值给变量,在变量中遍历需要在赋值时加“”,
否则会出错 (单个数据无所谓),若数据在在in后 得到,加“”后就会把整个数据列表看成一个整体。




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值