csh与bash比较:
一、csh的while循环控制结构及if then:
#!/bin/csh -f
while ($#argv >= 1)
  if ("$1" == "-s") then
    shift
    if ($#argv >= 1) then
      set source = $1
      shift
    endif
  else if ("$1" == "-c") then
    set complex = "-text"
    shift
  else
    if ($?text == "0") then
      set text = $1
    endif
    shift
  endif
end

而bash的for结构的if then :
#!/bin/sh
for file in *
do
   if grep -q POSIX $file
   then
      echo $file
   fi
done
exit 0
即c语言风格的csh,如if endif, while end结对,而linux下的bash形式为 if  fi,  for do done.

比较二:
csh的判断文件存在:
if (-e $MGDATA/${text}.chunks) then
  set input_files = `cat $MGDATA/${text}.chunks`
endif

而bash则是:
if test -f fred.c
then
...
fi
或者使用
if [ -f fred.c ]
then
...
fi
即方括号[]相当test命令的效果,注意:如果需要把then放在if的同一行,需要在方括号[]后加一个分号;
if [ -f fred.c ]; then
...
fi

root@host% tnpdump 
   Name                TNPaddr   MAC address    IF     MTU E H R
cluster1.node0     0x1100001 02:00:00:01:00:04 em0    1500 2 0 3
node0.fpc3         0x1100013 02:00:00:01:00:13 em0    1500 5 0 3
node0.fpc5         0x1100015 02:00:00:01:00:15 em0    1500 4 0 3
node0.fpc11        0x110001b 02:00:00:01:00:1b em0    1500 5 0 3
node0.fpc3.pic0    0x1100113 02:00:00:01:01:13 em0    1500 2 0 3
node0.fpc5.pic0    0x1100115 02:00:00:01:01:15 em0    1500 2 0 3
node0.fpc3.pic1    0x1100213 02:00:00:01:02:13 em0    1500 3 0 3
node0.fpc5.pic1    0x1100215 02:00:00:01:02:15 em0    1500 3 0 3
cluster1.node1     0x2100001 02:00:00:02:00:04 em0    1500 0 0 3
cluster1.node1     0x2100001 02:00:01:02:00:04 em1    1500 0 1 3
node1.re0          0x2100004 02:00:00:02:00:04 em0    1500 0 0 3
node1.re0          0x2100004 02:00:01:02:00:04 em1    1500 0 1 3
node1.fpc3         0x2100013 02:00:00:02:00:13 em0    1500 4 0 3
node1.fpc5         0x2100015 02:00:00:02:00:15 em0    1500 4 0 3
node1.fpc11        0x210001b 02:00:00:02:00:1b em0    1500 5 0 3
node1.fpc3.pic0    0x2100113 02:00:10:02:01:13 em0    1500 3 0 3
node1.fpc5.pic0    0x2100115 02:00:00:02:01:15 em0    1500 3 0 3
node1.fpc3.pic1    0x2100213 02:00:10:02:02:13 em0    1500 2 0 3
node1.fpc5.pic1    0x2100215 02:00:00:02:02:15 em0    1500 3 0 3
node1.fpc3.pic2    0x2100313 02:00:10:02:03:13 em0    1500 3 0 3
node1.fpc3.pic3    0x2100413 02:00:10:02:04:13 em0    1500 2 0 3
cluster1.master    0xf100001 02:00:00:02:00:04 em0    1500 0 0 3
cluster1.master    0xf100001 02:00:01:02:00:04 em1    1500 0 1 3
bcast             0xffffffff ff:ff:ff:ff:ff:ff em0    1500 0 0 3
bcast             0xffffffff ff:ff:ff:ff:ff:ff em1    1500 0 1 3

root@host% cat p.sh 
#!/bin/csh

foreach pic (`tnpdump | awk '{print $1}' | grep pic`) 
        echo $pic 
end

root@host% ./p.sh 
node0.fpc3.pic0
node0.fpc5.pic0
node0.fpc3.pic1
node0.fpc5.pic1
node1.fpc3.pic0
node1.fpc5.pic0
node1.fpc3.pic1
node1.fpc5.pic1
node1.fpc3.pic2
node1.fpc3.pic3

csh与bash比较的更多相关文章

  1. FreeBSD更换默认csh为bash

    1.安装bash cd /usr/ports/shells/bash make install 2.切换chsh(change shell) chsh -s /usr/local/bin/bash

  2. 跟着鸟哥学Linux系列笔记3-第11章BASH学习

    跟着鸟哥学Linux系列笔记0-扫盲之概念 跟着鸟哥学Linux系列笔记0-如何解决问题 跟着鸟哥学Linux系列笔记1 跟着鸟哥学Linux系列笔记2-第10章VIM学习 认识与学习bash 1. ...

  3. bash及其特性(笔记)

    bash及其特性:shell: 外壳GUI:Gnome, KDE, XfceCLI: sh, csh, ksh, bash, tcsh, zsh root, student程序:进程 进程:在每个进程 ...

  4. linux的学习之路--(五)bash及其特性

    操作系统组成作用shell是离用户最近的程序 shell:外壳 两类 GUI:Gnome,KDE,Xfce CLI:sh, csh,ksh,bash(都是程序,就是功能支持的不同而已) 进程:在每个进 ...

  5. 《鸟哥的Linux私房菜》学习笔记(2)——Bash特性

    一.shell的基本概念:                               shell 意思是外壳,它是离用户最近的程序.shell提供用户操作系统的接口,我们通过shell将输入的命令与 ...

  6. linux初级学习笔记五:bash特性详解!(视频序号:03_2,3)

    本节学习的命令:history,alias,ualias,\CMD 本节学习的技能:   bash的特性 光标跳转 查看命令历史 命令历史的使用技巧 给命令起别名 命令替换 文件名通配符 shell: ...

  7. linux bash变量作用域

    linux bash变量作用域 一,思考一个问题,当在shell里执行某个程序时,shell是怎么找到这个程序的? shell会去$PATH环境变量定义的目录里去找这个命令.环境变量里一般包括/usr ...

  8. linux中的bash

    一.bash的简介 操作系统都是需要通过shell跟内核来交互的,常见的shell有GUI.KDE.sh.csh.bash.tsh.zsh等. 而linux中最常用的shell就是bash. 二.ba ...

  9. FreeBSD csh shell 配置

    在/etc/csh.cshrc里面加入: alias ls ls –G, 并重新登录 问:如何让FreeBSD的csh像bash那样按tab列出列出无法补齐的候选文件? 答:标准的方法是按Ctrl+D ...

随机推荐

  1. [转]system函数返回值探究

    对于system这个函数的功能早就有一定了解,读书期间,就学习了UNIX系统编程这本书,后来买了APUE.我这个人总是有好读书不求甚解的毛病.对于system函数只知其一,不知其二.后来被人问起相关的 ...

  2. 加载驱动模块时Device or resource busy的解决方法

    加载驱动模块时Device or resource busy的解决方法 加载驱动模块时Device or resource busy的解决方法 insmod或modprobe驱动模块时Device o ...

  3. String对象中常用的方法

    String对象中常用的方法   1.charCodeAt方法返回一个整数,代表指定位置字符的Unicode编码.strObj.charCodeAt(index)说明:index将被处理字符的从零开始 ...

  4. eclipse 配置git ssh登录

    实现需要安装git的插件,由于我使用的adt和eclipse for javaee版本两个,都已经安装了git插件,就不再演示了,网上都有. 这篇文章主要是介绍使用ssh进行认证的方式. 1.首先,配 ...

  5. python SendMail 发送邮件

    最近在学习python 时,用到了发送邮件的操作,通过整理总结如下: 1.普通文本邮件 普通文本邮件发送的实现,关键是要将MIMEText中_subtype设置为plain,首先导入smtplib和m ...

  6. c++ 格式化printf

    类型为uint64_t的变量,使用printf进行打印时,需要区分操作系统: 64位系统:使用%ld 32位系统:使用%llu #include<stdio.h>#include < ...

  7. 在Eclipse中使用Propertites Editor插件来解决property文件中文显示乱码

    在一般情况下,propertites文件在eclipse中的显示中文一直显示乱码,想要解决这个问题,需要通过在eclipse中安装一个Propertites Editor插件来进行解决. 在Eclip ...

  8. java递归查询方法

    一.需求 项目里要让用户能够设置所选择教材的章课节,以针对章课节提供相应的题目供用户做题. 设计:用户设置了教材后,首次登录,进行章节设置时.默认为用户选择第一章.第一课.第一节. 思路:用户访问页面 ...

  9. 集合上的动态规划---最优配对问题(推荐:*****) // uva 10911

    /* 提醒推荐:五星 刘汝佳<算法竞赛入门经典>,集合上的动态规划---最优配对问题 题意:空间里有n个点P0,P1,...,Pn-1,你的任务是把它们配成n/2对(n是偶数),使得每个点 ...

  10. DelayedOperationPurgatory之purgatory的实现

    purgatory的超时检测 当一个DelayedOpeartion超时(timeout)时,它需要被检测出来,然后调用它的回调方法.这个事情看起来很简单,但做好也并不容易. 0.8.x的Kafka的 ...