shell脚本编程之基础

【版权声明:转载请保留出处: 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程序文件并依次执行文件中的所有语句。

你可能感兴趣的:(linux,shell,脚本)