当前位置:  技术问答>linux和unix

Shell中变量的作用域问题

    来源: 互联网  发布时间:2017-05-25

    本文导语:  任务描述: 在文件features.txt中,有大概1000条记录,每条记录占据一行。记录的格式为:[label] [feature] 举例为: romantic  1 2 893 544 32  2 .... 2323 990 现在,我要统计features.txt中有多少中label,以及每个label对应的记...

任务描述:
在文件features.txt中,有大概1000条记录,每条记录占据一行。记录的格式为:[label] [feature]
举例为: romantic  1 2 893 544 32  2 .... 2323 990
现在,我要统计features.txt中有多少中label,以及每个label对应的记录的数量。
我的方法如下:

file=featrues.txt
cut -d ' ' -f 1 $file | cut -d '-' -f 1 | sort -u | 
while read line; do
num=$(grep $line $file | wc -l)
numlist="$numlist $num"
echo $line $num
done
echo $numlist

第一行中,通过字段的截取获得了features.txt中的label,然后通过grep查找,计算每个label的数量。打印结果如下:

baroque 100
blues 99
classical 100
country 100
electronica 100
hip 99
jazz 100
metal 100
rock 99
romantic 99


在while循环中的统计结果正确了,但是打印$numlist时却出现了问题,$numlist为空字符串,这是怎么回事儿呢?

|
因为你的while循环在管道里,因此会运行在子shell里,修改的变量是子shell的变量。用shell需要特别注意这一点

    
 
 

您可能感兴趣的文章:

  • shell变量和子shell的问题请教
  • shell编程,如何将变量中的环境变量转换为绝对值
  • 怎么查看自己的shell的环境变量,和root的环境变量,solaris系统
  • 子shell改变父shell定义变量的值
  • gdb下用shell写环境变量的问题
  • 关于shell变量传递问题?
  • 如何查看当前shell的所有环境变量?
  • 请问如何在C语言中获得shell 变量
  • 请教个shell环境变量的问题
  • Shell编程中如何获取环境变量中设置的路径
  • C语言调用shell脚本后,通过何种方法能获取脚本中变量的值
  • [linux shell] 如何获得以一个变量的值为名的变量的值
  • 请问一个关于shell变量的简单问题
  • 急急急!!!!!!用B shell如何实现截取变量的子串?
  • unix shell中能否将后台运行程序的输出保存到变量中?
  • 程序中如何使用setenv或者export配置环境变量在当前shell生效
  • 为什么我的系统看不到shell,home变量?
  • 怎样用shell读取properties里面某个键对应的值,再赋值给shell中的变量
  • redhat7.2下怎么在shell文件中以变动日期做为变量?急!!
  • shell脚本的变量问题
  • 在Shell中运行命令后加上一个 "&";有什么作用?
  • 请教一段shell语句的作用
  • shell里的>>和>的各自作用
  • linux shell自定义函数(定义、返回值、变量作用域)介绍
  • linux shell 自定义函数方法(定义、返回值、变量作用域)
  • shell脚本中常见的一些特殊符号和作用详解
  • shell脚本中28个特殊字符的作用简明总结
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 傻瓜问题,请问shell编程和shell脚本编程的关系
  • 请教 一个shell问题 如何通过shell获得一个日志文件中的增量部分
  • 在shell中的交互问题,现在需要在shell结束时按某键或任意键
  • 请教一个 shell 问题,我用下面这个 shell 语句总是失败,请教
  • 急救!关于Shell脚本删除过期文件的问题,Shell脚本达人乱入
  • 请教一个shell编程的问题,就是如何在shell编程中读一个文件的内容?谢谢啦!
  • 使用shell在文本文件中进行字符串搜索问题?shell高手请进,分不够可以再加
  • vim问题,怎么不启动shell窗口,而只是把shell结果放到vim自身的command 栏里去?
  • 刚学Shell编程,问个关于Shell中if语句的问题
  • shell:sql问题,如何shell循环将不同表数据写入文件中...
  • 求助关于Java调用shell再传值给shell的问题
  • 一个奇怪的shell问题
  • 有关裁减内核及shell命令的问题
  • HP机上shell运行问题!写了个环境设定的shell,怎么也运行不了,大家来看看!
  • 子shell路径问题
  • 初学者问题,Unix Shell
  • 求助!!shell调用问题
  • 内核执行shell命令问题
  • 关于shell的问题~~~
  • 新手请教Shell学习问题
  • Centos6下安装Shell下文件上传下载rz,sz命令
  • 不同类型的shell*(K SHELL , C SHELL) 用命令怎么切换?
  • linux bash shell命令:grep文本搜索工具简介
  • 我在执行shell时,想在shell里直接向mysql数据库插入数据,我该如何写shell。
  • Linux下指定运行时加载动态库路径及shell下执行程序默认路径
  • 菜鸟问问题:shell是什么呢?普通的ls、cp、pwd这些命令算不算shell呢?如何把自己写的文件变成shell呢?
  • linux bash shell命令:文本搜索工具grep中用于egrep和 grep -E的元字符扩展集
  • 编程技术其它 iis7站长之家
  • linux bash shell命令:文本搜索工具Grep命令选项及实例
  • 怎么知道当前是B_SHELL 还是C_SHELL
  • linux bash shell命令:文本搜索工具grep正则表达式元字符集(基本集)


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3