Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1746844
  • 博文数量: 438
  • 博客积分: 9799
  • 博客等级: 中将
  • 技术积分: 6092
  • 用 户 组: 普通用户
  • 注册时间: 2012-03-25 17:25
文章分类

全部博文(438)

文章存档

2019年(1)

2013年(8)

2012年(429)

分类: LINUX

2012-03-27 12:29:49

Shell有不同的风格,最常用的包括Bourne Shell(bsh)、Bourne Again Shell(bash)、C Shell(csh)、Korn Shell(ksh)和Perl Shell等。

Shell语言是区分大小写的。“#”表示注释。


I/O重定向,Linux系统中,数据流可分为3类:数据输入、数据输出和错误输出。它们对应的文件描述指针分别为0、1和2。可以使用重定向来改变数据流的流向:
> 文件 :输出结果重定向到文件
&> 文件:输出结果和标准错误输出一起重定向到文件
>> 文件:输出结果追加到文件
2> 文件:标准错误的输出重定向到文件
< 文件:将文件作为标准输入
<< 字符串:从标准输入中读取数据,如直到接收到指定字符串。


管道:将程序的输出结果导入到另一个程序来作为输入数据。如ls | cat。|&将标准错误输出一起送入管道。


前台与后台:前台运行时,Shell要等待命令结束,才能恢复自身的运行;后台运行时,Shell不必等待命令结束,就可执行下一命令。command &启动一个后台进程。

多个命令在同一行可以用分号“;”分隔,命令将依次被执行。如:echo hello;pwd;ls。“&&”连接两个命令时,前一命令成功才执行后一命令,如ls dir && cd dir。而“||”连接命令时,前一命令不成功时才执行后一命令,如ls dir/sub || cp sub dir。


通配符:“?”表示任意的单个字符,如a?c可以匹配abc。“*”表示任意长度的任意字符串,如a*d可以匹配 abcd。“[]”表示匹配放在中括号里的字符集中的任意一个字符,如a[bdf]c匹配abc。“{}”匹配大括号中的某个字符串,如 a{bc,ef}d匹配abcd。


引号有三种:
双引号(" "):除了“$”、“"”、“`”和“\”以外的字符都被解释成字符本身。例:echo "$PATH" 输出变量$PATH的值。
单引号(' '):所有特殊字符都不再有特殊意义,都被视为普通字符。例:echo '$PATH' 输出字符串“$PATH”。
反引号(` `):字符串被解释成命令。例:ehco `ls`输出与命令ls一样的字符串。

在脚本文件第1行可以指定使用的shell,例如:#!/bin/bash或#!/bin/tcsh。之后把文件作为可执行程序时,会自动作为指定的脚本语言运行。


运行脚本的方法有三种:
通过chmod u+x scriptfile把文件设置为可执行程序;
使用shell启动命令,bash scriptfile或tcsh scriptfile或sh scriptfile,sh是bash的一个链接;
使用bash内部命令source scriptfile或. scriptfile。

阅读(761) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~