shell 详解

1.变量:字符串、数字、环境和参数。

2.条件:shell中的布尔值。

3.程序控制:if、elif、for、while、untill、case。

4.命令列表:

5.函数。

6.shell内置命令。

7.获取命令的执行结果。

8.here文档。



     $salutation=Hello

     $echo $salutation


在shell中,可以通过在变量名前加一个$符号来访问它的内容。



       注意:如果字符串里包含空格,就必须引号把它们括起来。还要注意两边不能有空格。


使用read命令来将用户的输入赋值给一个变量。

   $read  salutation

       Wie  geht's?

  $echo $salutation

     Wie geht's?


弄清shell的一个特点:引号的使用。

myvar="Hi there"

echo $myvar

echo "$myvar"

echo '$myvar'

echo  \$myvar

 Hi  there   

 Hi there      把一个带有$字符的变量放在双引号种,程序执行到这一行时就会把变量替换为它的值。

 $myvar       放在单引号种,就不会发生替换现象。

 $myvar       在$字符前面加上一个\字符取消它的特殊含义。


2.环境变量


当一个shell脚本程序开始执行时,一些变量会根据环境设置中的值进行初始化。


环境变量                                                     说明

$HOME                                                        当前用户的主目录

$PATH       以冒号分隔的用来搜索命令的目录列表

$PS1       命令提示符,通常是$字符,但在bash中,你可以使用一些更复杂的值。

$PS2       二级提示符,用来提示后续的输入,通常是>字符。

$IFS       输入域分隔符。当shell读取输入时,用来分隔单词的一组字符,它们通常是空格、制表符合换行符。


$0 shell脚本的名字

$# 传递给脚本的参数个数

$$ shell脚本的进程号,脚本程序通常会用它来生成一个唯一的临时文件。



3.参数变量


$1,$2, ...                                        脚本程序的参数

$* 在一个变量中列出所有的参数,各个参数之间用环境变量IFS中的第一个字符分隔开

$@ 它是$*的一种精巧的变体,它不使用IFS环境变量,所以当IFS为空时,参数的值不会结合在一起。



4.条件

所有程序设计语言的基础是对条件进行测试判断,并根据测试结果采取不同行动的能力。

test 或 [  命令


test命令可以使用的条件类型可以归为三类:字符串比较,算术比较,文件有关的条件测试。

   字符串比较                                  结果

 string1 = string2 如果两个字符串相同则结果为真

string1 != string2 如果两个字符符不同则结果为真

-n string 如果字符串不为空则结果为真

-z     string 如果字符串为空则结果为真。



       算术比较                        结果

expression1  -eq  expression2                如果两个表达式相等则结果为真

expression1  -ne   expression2 如果两个表达式不等则结果为真

expression1  -gt     expression2 如果expression1大于expression2则结果为真

expression1  -ge     expression2 如果expression1大于或等于expression2则结果为真

expression1  -lt      expression2 如果expression1小于expression2则结果为真

expression1  -le    expression2        如果expression1小于或等于expression2则结果为真

!expression 如果表达式为假则结果为真,反之亦然。


      文件条件测试 结果

-d   file 如果文件是一个目录则结果为真

-e   file 如果文件存在则结果为真。

-f    file 如果文件是一个普通文件则结果为真。

-g  file 如果文件的SGID位被设置则结果为真。

-r   file 如果文件可读则结果为真。

-s  file 如果文件的长度不为0则结果为真。

-u  file 如果文件的SUID位被设置则结果为真

-w  file 如果文件可写则结果为真

-x  file 如果文件可执行则结果为真。

你可能感兴趣的:(linux,c)