免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2605 | 回复: 5
打印 上一主题 下一主题

linux上ksh变量的作用域 [复制链接]

论坛徽章:
6
IT运维版块每日发帖之星
日期:2015-09-05 06:20:00IT运维版块每日发帖之星
日期:2015-09-06 06:20:00IT运维版块每日发帖之星
日期:2015-10-17 06:20:00IT运维版块每周发帖之星
日期:2015-11-06 19:28:13IT运维版块每日发帖之星
日期:2015-11-07 06:20:00操作系统版块每周发帖之星
日期:2015-12-02 15:01:04
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-03-13 20:40 |只看该作者 |倒序浏览
#!/bin/ksh

a=2

while read -r test
do
   f1=`echo $test`
   b=$b+1
done <content
   echo "this is f1"


这个脚本输出结果f1是空的, 我估计是因为f1 变量是在while里面定义的  如果让while里面的变量能在循环外面也能可见呢? 谢谢! 小弟在线等. 急!

论坛徽章:
0
2 [报告]
发表于 2009-03-13 20:47 |只看该作者
没有这样的说法,变量f1在当前shell中都有效

论坛徽章:
0
3 [报告]
发表于 2009-03-13 22:00 |只看该作者
echo "this is f1 "$f1

论坛徽章:
0
4 [报告]
发表于 2009-03-13 22:09 |只看该作者

回复 #1 risepp 的帖子

当然是空的啊
你只是输出一个字符串
echo "this is f1"
没有变量

论坛徽章:
0
5 [报告]
发表于 2009-03-13 22:11 |只看该作者
大头虾,不存在你说的事

  1. [rockfall@tmp]$head -12 ../kk.sh
  2. #!/bin/ksh

  3. a=2

  4. while read -r test
  5. do
  6.    f1=`echo $test`
  7.    b=$b+1
  8. done <a
  9.    echo "this is f1 $f1"

  10. exit 0
  11. [rockfall@tmp]$../kk.sh
  12. this is f1 done < b
  13. [rockfall@tmp]$cat a
  14. #!/bin/sh

  15. while read var
  16. do
  17. echo "$var"
  18. done < b
  19. [rockfall@tmp]$

复制代码

论坛徽章:
0
6 [报告]
发表于 2009-03-13 22:23 |只看该作者

回复 #5 haimming 的帖子

妹妹,你叫谁大头虾?
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP