linux的-shell学习指南(补足六个汉字).doc
文本预览下载声明
Linux的SHELL学习指南
TOC \o 1-3 \h \z \u HYPERLINK \l _Toc195173032 Linux的SHELL学习指南 PAGEREF _Toc195173032 \h 1
HYPERLINK \l _Toc195173033 变量 PAGEREF _Toc195173033 \h 2
HYPERLINK \l _Toc195173034 Test命令,用于条件判断 PAGEREF _Toc195173034 \h 3
HYPERLINK \l _Toc195173035 控制流结构 PAGEREF _Toc195173035 \h 4
变量
变量设置值的模式:
Variable-name=value
设置实际值到Variable-name
Variable-name+value
如果设置了Variable-name,则重设其值
Variable-name:?value
如果未设置Variable-name,显示未定义用户错误信息
Variable-name?value
如果未设置Variable-name,显示系统错误信息
Variable-name:=value
如果未设置Variable-name,设置其值
Variable-name:-value只是用了变量值,但是并没有把值赋给变量。
只是用了变量值,但是并没有把值赋给变量。
同上,但是取值并不设置到Variable-name,可以被替换
例子:
# colour=blue
# echo “The sky is ${colour:-grey} tody”
# The sky is blue tody
变量的显示:${values}
# gero=”dir hard“
# echo ${gero}
# dir hard
显示本地shell变量:set
# set
清除变量的值:unset
# pc=enterprise
# echo ${pc}
# unset pc
# echo ${pc}
设置只读的变量:readonly
# tape_dev=”/dev/rmt/on”
# readonly tape_dev
环境变量:
# CONSOLE=tty1
# export CONSOLE //CONSOLE为环境变量
查看环境变量:env
清除环境变量:unset CONSOLE
位置参数:$0,$1,$2…..$9
调用shell时,可以在后面加的参数,在shell里面可以根据位置得到输入的值。
特殊的变量参数:
$#
传递到脚本的参数个数
$*
以一个单字符串显示所有向脚本传递的参数。与位置变量不同,此参数可以超过9个
$$
脚本运行的当前进程ID号
$!
后台运行的最后一个进程的进程ID号
$@
与$#相同,但使用时加引号,并在引号中返回每个参数
$-
显示shell使用的当前选项,与set命令功能相同。
$?
显示最后命令的退出状态。0:没有错误,其他值表示有错误。
Test命令,用于条件判断
格式: test condition 或者 [ condition ]用方括号时,两边要加上空格。
用方括号时,两边要加上空格。
0标示成功,其他的标示失败。
文件状态的测试:
-d:目录
-s:文件长度大于0,非空
-f:文件
-w:可写
-l:符号连接
-u:文件有suid位置
-r:可读
-x:可执行
例子:
# [ -w scores.txt ]
# echo $?
# 0 //成功
# test –w scores.txt
# echo $?
# 0
逻辑判断:
-a:逻辑与,操作符两边均为真,结果为真,否正为假
-o:逻辑或,操作符两边一变为真,结果为真。否则为假
!:逻辑否。
例子:
# [ -w results.txt –a –w scores.txt ]
# echo $?
# 0
字符串测试:
=:两个字符串相等
!=:两个字符串不等
-Z:空字符串
-n:非空字符串
例子:
# [ -z $editor ]
# echo $?
# TAPE=”/dev/rmt0
# TYPE2=”/dev/rmt1
# [ “$TAPE” = “$TAPE2”
# echo $?
# 1
数字测试:
-eq:数值相等“=”
-ne:数值不相等“!=”
-gt:第一个数大于第二个数“”
-lt:第一个数小于第二个数“”
-le:第一个数小于等于第二个数“=”
-ge:第一个数大于等于第二个数“=”
例子:
# number=130
# [ “$number” –eq “130”
# echo $?
# 0
#[ “990” –le “995” ] –a [ “123” –gt “33”
这种方式是错误的。
显示全部