Linux的SHELL学习指南
2015-09-08 16:40
501 查看
Linux
的
SHELL
学习指南
Linux
的
SHELL
学习指南
.
.............................................................................................................
1
变量
...........................................................................................................................................
2
Test
命令,用于条件判断
.......................................................................................................
3
控制流结构
.
..............................................................................................................................
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
”
]
Sh
:
[
:
too many arguments
# [
“
990
”
–
le
“
995
”
-a
“
123
”
–
gt
“
33
”
]
# echo $?
# 0
Expr
:命令行计算器
# expr 30/3/2
# 5
# expr 10+10
# 20
Expr
的其他用法还很模糊,要细看
控制流结构
If then else
语句:
if [ test ]
then echo
“
”
elif [ test ]
then echo
“
”
else echo
“
“
fi
case
语句:
Case $V
AR in
1)
echo
“
1
”
;;
2|3|4)
//
或关系
echo
“
2|3|4
”
;;
*)
echo
“
*
”
esac
*
:任意字符
?:任意单个字符
[
…
]
:类或范围中的任意字符
For
循环:
for var in 1 2 3 4 5
do
echo
“
$var
”
done
Until
循环:
until [ test ]
//
直到为
true
echo
“”
done
While
循环:
While [ test ]
//
当判断条件为
true
时执行
do
do
echo
“”
done
Break
和
continue
控制循环:
Break
:跳出循环
Continue
:下一个循环
SHELL
函数
function hello(){
echo
“
hello `date`
”
}
调用时直接使用函数名称就可。
的
SHELL
学习指南
Linux
的
SHELL
学习指南
.
.............................................................................................................
1
变量
...........................................................................................................................................
2
Test
命令,用于条件判断
.......................................................................................................
3
控制流结构
.
..............................................................................................................................
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
”
]
Sh
:
[
:
too many arguments
# [
“
990
”
–
le
“
995
”
-a
“
123
”
–
gt
“
33
”
]
# echo $?
# 0
Expr
:命令行计算器
# expr 30/3/2
# 5
# expr 10+10
# 20
Expr
的其他用法还很模糊,要细看
控制流结构
If then else
语句:
if [ test ]
then echo
“
”
elif [ test ]
then echo
“
”
else echo
“
“
fi
case
语句:
Case $V
AR in
1)
echo
“
1
”
;;
2|3|4)
//
或关系
echo
“
2|3|4
”
;;
*)
echo
“
*
”
esac
*
:任意字符
?:任意单个字符
[
…
]
:类或范围中的任意字符
For
循环:
for var in 1 2 3 4 5
do
echo
“
$var
”
done
Until
循环:
until [ test ]
//
直到为
true
echo
“”
done
While
循环:
While [ test ]
//
当判断条件为
true
时执行
do
do
echo
“”
done
Break
和
continue
控制循环:
Break
:跳出循环
Continue
:下一个循环
SHELL
函数
function hello(){
echo
“
hello `date`
”
}
调用时直接使用函数名称就可。
相关文章推荐
- shell 截取字符串(转)
- shell中特殊变量$0 $1 $# $$ $! $?的涵义
- shell脚本中位置参数 $0 $1 .. $* $#的备忘
- Linux shell脚本的字符串截取
- linux shell
- shell 打印偶数行-奇数行 ,打印行号
- 查看使用了那种shell
- shell 打印偶数行奇数行
- shell脚本 函数传递参数
- shell主要命令使用总结
- shell中exec和system解析
- shell脚本语法总结
- profile和bash
- shell条件测试
- Shell获取文件的文件名和扩展名的例子
- linux shell 种类
- shell中if条件字符串、数字 [[ ]]和[ ]区别
- shell中第一行#!/bin/bash的作用
- linux bash history
- shell脚本的多种执行方法及调试方法