csh与bash比较

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

[email protected]% 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

[email protected]% cat p.sh 
#!/bin/csh

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

[email protected]% ./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

时间: 2024-10-27 18:51:17

csh与bash比较的相关文章

FreeBSD更换默认csh为bash

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

Bash及其特性

shell: 是系统的用户界面,提供了用户与内核进行交互操作的一种接口,分以下两大类.    GUI:Gnome, KDE, Xfce       CLI: sh, csh, ksh, bash, tcsh, zsh     程序和进程 进程:在每个进程看来,当前主机上只存在内核和当前进程||进程是程序的副本,进程是程序执行实例 用户工作环境:        bash:         # 超级管理员 root         $ 普通用户  tom, jerry-.      shell,子s

Linux学习笔记——bash命令及shell变量简介

bash 及其特性 shell  外壳 GUI :Gnome  KDE  xface CLI :shell  csh  ksh  bash 程序,进程 进程:每个进程看来,当前主机上只存在内核和当前进程 进程是程序的副本,进程是程序执行实例 用户的工作环境: bash: #   root用户 $   普通用户 shell  ,子shell bash : 1.命令历史 2.管道,重定向 3.命令行编辑 4.命令别名 5.命令行展开 6.文件名通配 7.变量 8.编程 命令行使用技巧: Ctrl +

bash简介以及bash应用和命令

bash及其特性: shell:外壳 GUI:Gnome,KDE,xfceCLI: sh,csh.ksh,bash,tcsh,zsh 程序:只有一个进程:可以有多个 进程:在每个进程看来,当前主机上只存在内核和当前进程.进程是程序的副本,进程是程序执行实例. 用户工作环境:bash:          #管理员          $一般用户 shell,子shell bash命令行编辑:光标跳转:   Ctrl+a:跳到命令行首   Ctrl+e:调到命令行尾   Ctrl+u:删除光标至命令行

linux基础篇-06,linux bash特性详解

################################################ bash及其特性 shell外壳 clt:sh csh ksh bash tcsh zsh 程序和进程之间的关系:1个程序,多个进程 进程:每个进程,当前主机只存在内核和当前进程 进程是程序的副本,进程是程序的执行实例 用户工作环境 bash shell与子shell ################################################ bash支持以下特性 1,命令历史

bash及其特性(一)

shell:外壳 GUI:Gnome,KDE,xfce CLI:sh,csh,ksh bash支持的引号: ``:命令替换 "":弱引用,变量替换 '':强引用,不完成变量替换 文件名通配符: *:匹配任意长度的任意字符 ?:匹配任意单个字符 []:匹配指定范围内的任意单个字符 [:space:]空白字符 [:punct:]标点符号 [:lower:]小写字母 [:upper:]大写字母 [:alpha:]大小写字母 [:digit:]数字 [:alnum:]数字和大小写字母 例子:[

bash及其特性笔记

bash及其特性 shell: 外壳 GUI: Gnome,KDE,Xfce CLI: sh, csh, ksb, bash, tcsh, ksh, zch 程序: 进程 允许同一个用户登陆多次,互不相干,进程独立 进程: 在每个进程看来,当前主机上只存在内核和当前进程 进程是程序的副本,进程是程序执行的实例 用户工作环境: # $ shell, 子shell bash: 1. 命令历史 2. 管道.重定向 3. 命令别名 4. 命令行编辑 5. 命令行展开 6. 文件名通配 7. 变量 8.

初识linux以及bash的部分使用及技巧

Linux的基本原则: 1.由目的单一的小程序组成,组合小程序完成复杂任务: 2.一切皆文件: 3.尽量避免捕获用户接口:尽量减少与用户交互; 4.配置文件保存为纯文本格式; bash及其特性:shell: 外壳程序   GUI: Gnome,KDE,Xfce   CLI: sh,csh,ksn,bash,tcsh,zsh      命令提示符,orimpt,bash(shell)         #: root         $: 普通用户 命令类型:    内置命令(shell 内置) 

Linux基础之bash脚本编程进阶篇-选择执行语句(if,case)

bash脚本的书写规范简介 看本文需要了解的脚本撰写习惯:bash 开头顶格写#!紧接着写解释器路径/bin/bash 由于bash属于脚本语言,脚本语言的运行方式 解释运行:源代码 --> 运行时启动解释器,由解释器边解释边运行 Linux中的脚本解释器有:zsh,csh,bash,tsh众多shell,不过bash最常用. 第一行写完之后,就可以直接写代码.不过为了便于他人阅读通常会增加如下行: 第二行:#版本信息 第三行:#作者与联系方式 第四行:#版权宣告方式 第五行:#History