0 0

bash shell循环的疑问5

下面两段代码
第一段,无法正确统计文件行数,count在循环中的计算,出了循环就无效了
第二段,count2出了循环依然有效
初学shell,不太明白这是为什么,希望大家指点一下
ps:第一段代码应该如何修改,才能达到第二段的效果
#!/bin/bash
count=0

cat "$1" | while read line
do
    count=$[ $count + 1 ]
done

echo "$count line(s) in all."
#-----------------------------------------
count2=0;

for var in a b c
do
    count2=$[ $count2 + 1 ]
done
echo "$count2 line(s) in all."
2013年8月16日 20:59

1个答案 按时间排序 按投票排序

0 0

采纳的答案

shell 在管道中改变变量是无效的 有很多方法可以做到 比如wc 当然你如果硬要用while
改成这样

1.#!/bin/bash  
2.count=0  
3.  
4.while read line  
5.do  
6.    count=$[ $count + 1 ]  
7.done  < file
8.  
9.echo "$count line(s) in all."  


具体可以查看:http://sumit.blog.51cto.com/162317/271554
http://bbs.chinaunix.net/thread-1661629-1-1.html
http://zhidao.baidu.com/link?url=mXrgoibdctnZBoEgdFPt49sa4yTgtaQuexvZS28ZH293W3nww5wIoF7Nj3M9g3fr8OxiiyHCBljAfiwWH1v6ka
http://linux.sheup.com/linux/linux5525.htm
http://www.linuxidc.com/Linux/2011-04/34889.htm
http://blog.csdn.net/astraylinux/article/details/7280906
http://xuyongtao630.blog.163.com/blog/static/8618328320115276915626/

2013年8月16日 22:23

相关推荐

    关于bash函数你可能不知道的一些事情(译)

    在Bash shell编程中,函数是一种非常强大的工具,可以封装一系列命令,提高代码的可读性和复用性。然而,Bash函数与某些其他编程语言中的函数...如果你对此有任何疑问,或者想要讨论更多的Bash编程技巧,欢迎留言交流。

    UNIX.Shells部分答案

    - **Bash (Bourne-Again SHell)**:目前最流行的Shell,是GNU项目的一部分,广泛应用于Linux系统中,继承了Bourne Shell和Korn Shell的优点。 3. **Shell脚本** Unix Shell可以编写脚本文件,这些脚本是一系列...

    shell两个文件去重的多种姿势

    在IT行业中,shell脚本是一种强大的工具,尤其在文件处理和自动化任务方面。本文将详细介绍如何使用shell来解决两个文件的去重问题,这在数据分析、...如果你在实践过程中遇到问题或有其他疑问,欢迎进一步探讨和交流。

    linux-shell-scripting:学习Linux命令Shell脚本

    Shell脚本是基于Bash(Bourne-Again SHell)或其他兼容的Shell,如KSH、ASH或CSH。在本教程中,我们将深入探讨如何学习和运用Linux命令及Shell脚本来提升你的系统管理效率。 1. **Shell基础知识** - **Shell解释器...

    bacotbet

    1. Shell基础知识:了解Bash或其他Shell的语法,如变量、条件语句、循环、函数等。 2. 文件和目录操作:学会如何在脚本中创建、删除、移动和修改文件和目录。 3. 输入/输出重定向:掌握如何在脚本中进行输入和输出的...

    seasonyuu_blogs

    Shell,全称为Bash Shell,是Unix及类Unix操作系统如Linux、macOS中的命令行解释器,用户可以通过Shell命令来操作系统,执行各种任务。它不仅用于交互式地输入命令,还能编写脚本,实现自动化任务处理。Shell脚本的...

    Unix编程常见问题解答.rar_UNIX

    4. **shell脚本编程**:Bash shell是Unix最常用的命令行解释器,用于编写自动化任务。常见的问题可能包括变量赋值、条件语句、循环结构、函数定义、管道和重定向等。 5. **网络编程**:Unix提供了丰富的网络编程...

    stackoverflow问题

    StackOverflow是程序员最常访问的问答网站之一,其中涵盖了各种编程、系统管理和技术问题,包括Shell相关的疑问。从"stackoverflow-questions-master"这个压缩包文件名来看,这可能是一个包含关于Shell问题的集合,...

    回购12

    在Linux或Unix环境下,bash(Bourne-Again SHell)是最常用的Shell。下面是一些基本的Shell命令和概念: 1. **路径和目录**:在Unix系统中,文件和目录用绝对路径或相对路径表示。例如,“/home/user”是绝对路径,...

    ezoi

    常见的Shell类型有Bash(Bourne-Again SHell)、Sh、Csh、Ksh和Zsh等,其中Bash是最广泛使用的。 在"ezoi-master"这个压缩文件名中,"master"通常表示这是某个Git仓库的主分支,这可能是一个开源项目或课程资料。在...

    《Linux基础千锤百炼》v2.pdf

    - 使用`bash` shell编写自动化任务和脚本。 7. **软件包管理**: - 使用`apt`、`yum`或`dnf`等工具安装、更新和卸载软件包。 8. **系统日志和故障排查**: - 学习阅读和分析系统日志,使用`dmesg`、`journalctl...

    在linux命令下导出导入.sql文件的方法

    在Linux环境中,管理和操作数据库是常见的任务之一,其中包括导出和导入.sql文件。这些文件通常包含数据库的结构和数据,方便备份、迁移或在...如有任何疑问或需要进一步的帮助,请随时提问。感谢你对我们网站的支持!

Global site tag (gtag.js) - Google Analytics