什么是shell?如何创建和运行linux shell程序?
1.建立和运行 shell 程序
什么是 shell 程序呢? 简单的说 shell 程序就是一个包含若干行 shell 或者 linux 命令的文件.象编写高级语
言的程序一样,编写一个 shell 程序需要一个文本编辑器.如 VI 等.在文本编辑环境下,依据 shell 的语法规则,
输入一些 shell/linux 命令行,形成一个完整的程序文件.
执行 shell 程序文件有三种方法
(1)#chmod +x file(在/etc/profile 中,加入 export PATH=${PATH}:~/yourpath,就可以在命令行下直接运
行,像执行普通命令一样)
(2)#sh file
(3)# . file
(4)#source file
在编写 shell 时,第一行一定要指明系统需要那种 shell 解释你的 shell 程序,如:#! /bin/bash,
#! /bin/csh,/bin/tcsh,还是#! /bin/pdksh .
2.shell 中的变量
(1)常用系统变量
$ # :保存程序命令行参数的数目
$ ? :保存前一个命令的返回码
$ 0 :保存程序名
$ * :以("$1 $2...")的形式保存所有输入的命令行参数
$ @ :以("$1""$2"...)的形式保存所有输入的命令行参数
(2)定义变量
shell 语言是非类型的解释型语言,不象用 C++/JAVA 语言编程时需要事先声明变量.给一个变量赋值,实际上
就是定义了变量.
在 linux 支持的所有 shell 中,都可以用赋值符号(=)为变量赋值.如:
abc=9 (bash/pdksh 不能在等号两侧留下空格 )
set abc = 9 (tcsh/csh)
由于 shell 程序的变量是无类型的,所以用户可以使用同一个变量时而存放字符时而存放整数.如:
name=abc (bash/pdksh)
set name = abc (tcsh)
在变量赋值之后,只需在变量前面加一个$去引用.如:
echo $abc
(3)位置变量
当运行一个支持多个命令行参数的 shell 程序时,这些变量的值将分别存放在位置变量里.
其中第一个参数存放在位置变量 1,第二个参数存放在位置变量 2,依次类推...,shell 保留
这些变量,不允许用户以令外的方式定义他们.同别的变量,用$符号引用他们.
3.shell 中引号的使用方法
shell 使用引号(单引号/双引号)和反斜线("\")用于向 shell 解释器屏蔽一些特殊字符.反引号(")对 shell
则有特殊意义.如:
abc="how are you" (bash/pdksh)
set abc = "how are you" (tcsh)
这个命令行把三个单词组成的字符串 how are you 作为一个整体赋值给变量 abc.
abc1='@LOGNAME,how are you!' (bash/pdksh)
set abc1='$LOGNAME,how are you!' (tcsh)
abc2="$LOGNAME,how are you!" (bash/pdksh)
set abc2="$LOGNAME,how are you!" (tcsh)
LOGNAME 变量是保存当前用户名的 shell 变量,假设他的当前值是:wang.执行完两条命令后,abc1 的内容是:
$LOGNAME, how are you!.而 abc2 的内容是;wang, how are you!.象单引号一样,反斜线也能屏蔽所有特殊字
符.但是他一次只能屏蔽一个字符.而不能屏蔽一组字符.
反引号的功能不同于以上的三种符号.他不具有屏蔽特殊字符的功能.但是可以通过他将一个命令的运行结果传
递给另外一个命令.如:
contents=`ls` (bash/pdksh)
set contents = `ls` (tcsh)
Subscribe to:
Post Comments (Atom)
0 评论:
Post a Comment