【版权声明:转载请保留出处: blog.csdn.net/gentleliu。邮箱:shallnew*163.com】
1.参数
$0 ---- 程序的完整路径和名字。
$# ---- 传递给程序的参数数目。
$? ---- 程序执行结果,正常为0。
$* ---- 传递给程序的所有参数组成的字符串。
$$:当前进程的进程号,“$$”变量最常见的用途是用作临时文件的名字以保证临时文件不会重复。
$n ,n为数字,linux会把输入的命令编号,程序名为$0, 第一个参数为$1,第二个参数为$2,依次类推。。。。
2.变量
变量赋值格式如下:
变量名=值(等号前后不能有空隔,C语言有无空格均可)
在给变量赋值时,等号两边一定不能留空格,留空格为相等操作,若变量中本身就包含了空格,则整个字符串都要用双引号括起来。
使用变量值在变量名前加“$”符号。
如:echo $var
var2=$var
i=$i+1
(注意和makefile变量使用区别,变量不要加括号)
使用变量时最好加上双引号,以免出现意想不到的错误。
3.比较运算
字符串比较:
= 比较两个字符串是否相同,相同为真
!= 比较两字符串是否不同,不同为真
-n 比较字符串长度是否大于0,大于0为真
-z 比较字符串长度是否等于0,等于0为真
数字比较:
-eq 等于
-ge 大于
-le 小于
-ne 不等于
-gt 大于
-lt 小于
文件操作
-f 对象存在且为文件返回真
-d 对象存在且为目录返回真
-L 对象存在且为符号链接返回真
-s 对象存在且长度非0返回真
-r 对象存在且可读返回真
-w 对象存在且可写返回真
-x 对象存在且可执行
在比较运算符两边有空隔,注意和赋值的区别。
4.export
在任何时候,建立的变量都只是当前shell的局部变量,所以不能被shell运行的其他命令或shell程序所利用,export命令可以将一局部变量提供给shell执行的其他命令使用,其格式为:
export 变量名
也可以在给变量赋值的同时使用export命令:
export 变量名=变量值
使用export说明的变量,在shell以后运行的所有命令或程序中都可以访问到。
export把它的变量向下带入子shell从而让子进程继承父进程中的环境变量。但子shell不能用export把它的变量向上带入父shell。
5.算术运算
方法一:用echo `expr 1 + 2`来输出1+2的结果,用expr表示后面的表达式为一个数学运算。需要注意的是,`并不是一个单引号,而是“Tab”键上面的那个符号。运算符两边一定要与有空格,否则会以字符串的形式赋值。
方法二:a=$[1 + 2],运算符两边可以不要空格。
如果没有expr或$[]更改运算顺序,则会将运算式以字符串的形式赋值,而不会赋值运算结果。
6“.”(点)
命令格式:. Shell程序文件名
功能:使shell读入指定的shell程序文件并依次执行文件中的所有语句。