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

shell_基础知识

2013-09-15 14:46 204 查看
参考: http://blog.csdn.net/kaizi318/article/details/9343551

开头
程序必须以下面的行开始(必须方在文件的第一行):
#!/bin/sh
符号#!用来告诉系统它后面的参数是用来执行该文件的程序。在这个例子中我们使用/bin/sh来执行程序。

默认变量

$# : 传入脚本的命令行参数个数

$* : 所有命令行参数值,在各个参数值之间留有空格

$0 : 命令本身(shell文件名)

$1 : 第一个命令行参数

$2 : 第二个命令行参数

$@ 表示参数列表"$1" "$2" ...,例如可以用在for循环中的in后面。
$? 上一条命令的Exit Status
$$ 当前Shell的进程号

$! シェルが最後に実行したバックグラウンドプロセスのPID
$- setコマンドを使って設定したフラグの一覧

局部变量

在变量首次被赋值时加上local 关键字可以声明一个局部变量,例s3:

#!/bin/bash

hello="var1"

echo $hello

function func1 {

local hello ="var2"

echo $hello

}

func1

echo $hello

要取用一个变量的值,只需在变量名前面加一个$ ( 注意: 给变量赋值的时候,不能在"="两边留空格 )
我们可以用花括号来告诉shell要打印的是num变量:
num=2
echo "this is the ${num}nd"

引号

引号(单引号和双引号)可以防止通配符*的扩展:
其中单引号更严格一些,它可以防止任何变量扩展;而双引号可以防止通配符扩展但允许变量扩展:
此外还有一种防止这种扩展的方法,即使用转义字符——反斜杆:\:

比较

比较操作 整数操作 字符串操作

相同 -eq =

不同 -ne !=

大于 -gt >

小于 -lt <

大于或等于 -ge

小于或等于 -le

为空 -z

不为空 -n

<例>

比较整数a和b是否相等:if [ $a = $b ] (也可用eq)

判断整数a是否大于整数b:if [ $a -gt $b ]

比较字符串a和b是否相等:if [ $a = $b ]

判断字符串a是否为空: if [ -z $a ]

判断整数变量a是否大于b:if [ $a -gt $b ]

字符串

文字列 文字列の長さが0より大きければ真
-n 文字列 文字列の長さが0より大きければ真
! 文字列 文字列の長さが0であれば真
-z 文字列 文字列の長さが0であれば真
文字列1 = 文字列2 2つの文字列が等しければ真
文字列1 != 文字列2 2つの文字列が等しくなければ真


文件判断


-e 文件已经存在

-f 文件是普通文件

-s 文件大小不为零

-d 文件是一个目录

-r 文件对当前用户可以读取

-w 文件对当前用户可以写入

-x 文件对当前用户可以执行

-L 文件名 シンボリックリンクなら真
文件1 -nt 文件2 ファイル1がファイル2より新しければ真
文件1 -ot 文件2 ファイル1がファイル2より古ければ

运算

シェルスクリプトで数値の演算を行いたい場合は、「expr」コマンドを使用します。「5+3」は「変数=`expr 5 + 3`」と書きます。

算術演算子 意味
a + b aとbの和
a - b aとbの差
a \* b aとbの積
a / b aとbの商
a % b aとbの剰余

如果想要运行它,需要使用“sh *.sh"这样的命令。但是如果需要通过sh文件修改环境变量之类的,则需要使用“source *.sh”这样的命令。

流程控制
if
“if” 表达式 如果条件为真则执行then后面的部分:
if …. then
….
elif …. then
….
else
….
fi

case 语句
case表达式可以用来匹配一个给定的字符串,而不是数字(可别和C语言里的switch...case混淆)。
case ... in
...) do something here
esac

select 语句
select表达式是bash的一种扩展应用,擅长于交互式场合。用户可以从一组不同的值中进行选择:
select var in ... do
 break;
done
.... now $var can be used ....

while循环
while ... do
....
done

for 循环
for循环会查看一个字符串列表(字符串用空格分隔),并将其赋给一个变量:
for var in .... do
....
done


常用参数

格式:export

格式:export -p

打印当前导出的环境变量。

格式:export VAR

导出变量VAR。

格式:export VAR=VALUE

设置环境变量,并导出。

格式:export -n VAR

取消导出变量VAR。

格式:unset VAR

删除变量VAR。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: