Ch04_Linux的shell课件.ppt
文本预览下载声明
第4章 Linux的shell 主要内容 4.1 命令行结构 4.2 变量 4.3 引用 4.4 别名 4.5 创建新命令 4.6 命令参数 4.7 命令替换 4.8 shell与变量 4.9 深入I/O重定向 4.10 循环简介 4.11 实例:bundle 4.1 命令行结构 最简单的命令通常是一个可执行的文件名:$ who 一条命令通常以换行结束,但分号;也可用作命令结束符:$ date; 尽管分号可用作命令结束符,但通常只有按回车键后才开始执行:$ date; who 4.1 命令行结构 将date; who的输出送到一个管道:$ date; who | wc 通过管道将who和wc连成了一条命令,称为管道线命令,它在date之后运行。Shell在分析命令行时,认为|的优先级高于;。 括号可以用来组合命令:$ (date; who)$ (date; who) | wc 4.1 命令行结构 tee tee命令可以将通过管道的数据流截获并放进某个文件,它常用于就是将中间结果保存到一个文件中:$ (date; who) | tee save | wc$ cat save$ wc save$ tee将其输入复制到一个文件,同时把输入复制到输出,因此wc可以接收到同样的数据,就好像tee在管道线中并不存在一样。 4.1 命令行结构 sleep sleep命令用来等待一段时间,然后退出:$ sleep 5$$ (sleep 5; date) date 这样可以很容易写一个在将来运行的命令:$ (sleep 300; echo Tea is ready) 由于的优先级高于;,所以必须加括号。 4.2 变量 shell变量名以字母或下划线字符开始,后面跟0或若干个字母、数字或下划线。 $ count=1$ my_bin=/home/mike/bin 注意: 1. 等号的任何一边不能加空格。 2. shell没有任何数据类型的概念。当向shell变量赋值时,不管值是什么,shell都简单地将它理解为字符串。 3. 变量在使用之前不需要声明。 4.2 变量 显示变量的值 $ echo $count1$ echo $my_bin/home/bob/bin$ echo $my_bin $count/home/bob/bin 1$ mkdir $my_bin 变量值可以用于命令行的任何地方$ touch $my_bin/empty$ ls $my_binempty$ pwd/home/bob$ cd $my_bin$ pwd/home/bob/bin 4.2 变量 显示变量的值 $ number=5$ echo There are $number books on the deskThere are 99 books on the desk$ command=sort$ $commandMaryTony Lucy Charlie WilliamFred^d 4.2 变量 显示变量的值 $ command=wc$ option=-l$ file=poem$ $command $option $file 8 poem$ value1=10$ value2=value1$ echo $value2value1 !?$ value2=$value1$ echo $value210 ok!$ 4.2 变量 空值 如果一个变量没有值,我们就说它含有空值,这是变量还没有赋值时的默认状态。$ echo $nosuch 从来没有赋过值$ $ echo :$nosuch: 用冒号把它的值括起来::$ 当shell进行变量替换时,任何空值都被完全从命令行中清除掉,不留一点痕迹。$ wc $nosuch -l $nosuch $nosuch poem8 poem 给变量赋空值:$ emptyvalue=$ emptyvalue=““$ emptyvalue=’’ 4.2 变量 文件名替换和变量 $ ls$ x=*$ echo $x 结果与ls差不多$ 说明:shell在给变量赋值时不进行文件名替换,而是在执行echo命令时由shell替换了文件名。即:shell先做变量替换,然后做文件名替换,最后把这行处理成参数。 4.2 变量 ${variable}结构 假定把一个文件名存放在变量filename中,如果想将该文件重命名,新文件名就是在原文件名后加一个X,首先可能是想键入:mv $fil
显示全部