您的位置:首页 > 运维架构 > Shell

LINUX期末复习---SHELL编程

2009-12-24 17:59 211 查看

一、SHELL简介

①什么是SHELL

答:一个作为用户与LINUX系统之间的操作接口程序,允许用户向操作系统输入需要执行的命令。
      一种高级、解释性的程序语言。



    ②SHELL的种类




③SHELL的执行
         .   *.sh

④命令别名功能
      设置别名:alias
      取消别名:unalias

⑤管道
      1、 利用管道和wc命令,计算文件list中的行数、单词数和字符数:cat list | wc.
      2、利用管道和grep命令,在上面建立的文件list中查找字符串list:cat list | grep list.
      3、设置环境变量PATH的值,把当前目录加入到命令搜索路径中去:PATH=“$PATH:.”

二、SHELL程序设计语法

(说明:1、使用前部需要声明。2、默认是字符串类型。3、区分大小写。)

1)变量

①赋值的方法
方法一:a=9+1,a=guofeng,等号左右时不能有空格的,他们都是以字符串的形式赋值
方法二:read a ,通过键盘的输入
②变量的引用
一般用’$’,来引用,如有一个 guofeng 变量,输出它为,echo $guofeng
举例:
   1、echo "Hello $LOGNAME, it's nice talking to you."     输出用户名
(说明:双引号中的 ‘$变量’ 是会被替换的,想输出‘$变量’只要加一个’/’转义一下。。。但是单引号里面的内容都是当做字符串输出。。。而到引号则是回去执行里面的命令。)
   2、echo "Your present working directory is `pwd`."    输出当前的工作路径(有到引号)
   3、echo "You are working on a machine called `uname -n`."     输出服务器名
   4、echo The name of this script is $0.    显示命令名
   5、echo The arguments are $*.    显示所有的参数行,$? 为前一个命令的返回
   6、echo The first argument is $1.     显示第一个参数
   7、echo The number of arguments is $#.   显示参数的个数
   8、set $(date)    赋值命令行为日期

2)if语句(可用 [] 或 test 来判断)

 

①基本结构
        if  [   条件1  ];  then
              代码;
        elif  [   条件2  ];  then
              代码;
        elif  [   条件3  ];  then
              代码;
        else
              代码;
        fi
(注意,[],必须与判断条件之间留空格。)

②字符串比较



③算数比较
 

 
-eq:==
-ne:!=
-gt:>
-ge:>=
-lt:<
-le:<=
!expression:true  or   false
④文件测试


 
 

3)case、for、while/until语句

1、case使用举例:
read choice
case "$choice" in
N) echo "please input a new filename:"
执行语句
;;
E) echo "pleas input a filename:"
执行语句
;;
Esac
2、for使用举例:
for((i=1;i<10;i++))
do
echo $i
done
或者
for i in 1 2 3 4 5 6 7 8 9 
do
echo $i
done
3、while使用举例
index=1
while [ $index -le 100 ]
do
执行语句
index=$(($index +1))
done

4)函数

定义:
get_return()
{
echo -e "Press return /c"
read x
return 0
}
调用:
get_return

5)内嵌命令

1、eval:  eval echo hello,输出hello,该命令将其参数连接成命令,并交由shell执行
2、exec: exec . another.sh  用 . another.sh替换掉当前的SHELL
3、expr,let: 表达式赋值
expr: expr `guoefng = 1 + 1` ,guofeng的值即为2.
let: let guofeng=(1+3)*3,guofeng的值即为12,,,( i=1, (( i+=4)) )
4、echo:  -n 去掉后面的换行符 ,  -e使用字符串的/为转移符
5、read
read -a friends     //-a  按数组形式输入
echo "Say hi to ${friends[2]}."
6、trap: trap `rm –rf  guofeng.c` EXIT,当你的shell程序退出时,会自动删除当前目录下的该文件
7、umask:设置用户访问文件的默认属性,umask 0666|
8、times:用户运行命令的时间  times ll
9、type:查询命令是否有效  type ls
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息