仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 1452|回复: 8
打印 上一主题 下一主题

[shell编程] 给大家带来shell剧本使用及轮回语句

[复制链接]
柔情似水 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-14 20:21:05 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
如果您觉得本篇CentOSLinux教程讲得好,请记得点击右边漂浮的分享程序,把好文章分享给你的好朋友们!Shell剧本使用及轮回语句
一.bash通配符:
1.?//恣意的单个字符
2.*//0个或多个字符
3.[]//区间内的恣意一个字符
4.;//支解下令,疏忽前一个下令的实行了局,持续实行前面的下令
5.&//背景实行步伐
6.&&//后面的下令实行乐成,前往值是0,实行前面的下令。
7.||//后面的下令实行失利,前往值非0,实行前面的下令。
8.|//管道
9.()//开启子shell,实行内里的下令
10.{}//内里的下令在以后shell实行
11.>>>//输入重定向
12.<<<//输出重定向
13.$//界说变量
14.//本义;下令的折行
15.``//挪用下令的实行了局;不成以嵌套
16.-//连字符;下令的选项的前导,---
17.//强援用标记;屏障特别字符
18.""//弱援用标记;``$3个标记屏障不了
19.://暗示空操纵,前往值永久是0while轮回
20.[:alnum:]//字母+数字
21[:alpha:]//字母
22[:lower:]//小写字母
23[:upper:]//年夜写字母
24[:digit:]//十进制数
25[:punct:]//标记
26[:space:]//空缺字符(空格“tab”)
27[[:alnum:]]//恣意的一个字母或数字[a-Z0-9]
28[^[:alnum:]]//取反
[[:alnum:]!]
二.变量
1.注重
1=的双方万万不要有空格
2)不要利用$作为变量的名字
3)变量名的长度--256个字符,辨别巨细写
2.怎样援用
1)间接援用:
echo下令
-e:启用(反斜线)把持字符(       
)的转换

-n:作废换行符
[root@tx1~]#echo"123        234"
123        234
[root@tx1~]#echo-e"123        234"
123234
[root@tx1~]#echo-e"123
234"

123
234
[root@tx1~]#echo-n"123        234"
123        234[root@tx1~]#
(2)直接援用
[root@tx1~]#a=b
[root@tx1~]#b=c
[root@tx1~]#echo$a
b
[root@tx1~]#echo${!a}
c
(3)变量的感化域
@1在以后的shell里,界说的变量叫做当地变量-部分变量。
@2全局变量-情况变量,export把部分变质变玉成局变量。只感化于子shell
[root@tx1~]#x=123
[root@tx1~]#echo$x
123
[root@tx1~]#bash
[root@tx1~]#echo$x


[root@tx1~]#exit
exit
[root@tx1~]#exportx
[root@tx1~]#bash
[root@tx1~]#echo$x
123


(4)检察界说的变量
@1.set检察一切的变量
@2.env检察全局变量
@3.unset作废变量unset+变量名
@4.设置变量为只读:readonly+变量名


(5)地位参数$
注:地位参数,从下令行传送给剧本,大概是传送给函数.大概赋职给一个变量.
$0下令自己
$1$2......${10}
$#参数的个数
$*一切的参数


$@一切的参数(必要被””援用
$$上一条下令的历程号
$?上一条下令的前往了局
$_上一条下令的最初一个参数
$!最初一个进进背景的下令的历程号
$()同等于``
$(())同等于$[]做数学运算的,可是只能算整数
(6)变量的置换
注:用来实行婚配大概是判别变量是不是存在。
@1.${变量名:-字符串}:假如变量是空的,那末就前往字符串;不然前往变量的值
@2.${变量名:+字符串}:假如变量有值,那末利用字符串交换变量;不然前往空值
@3.${变量名:=字符串}:假如变量没有值,那末就把字符串赋值给变量;不然前往变量的值


@4.${变量名:?提醒信息}:假如变量没有值,那末前往提醒信息
@1.
[root@tx1~]#echo$a
[root@tx1~]#echo${a:-123}
123
[root@tx1~]#b=abc
[root@tx1~]#echo${b:-123}
Abc


@2.
[root@tx1~]#echo${a:+123}
[root@tx1~]#echo${b:+123}
123


@3.
[root@tx1~]#echo$a
[root@tx1~]#echo$b
abc
[root@tx1~]#echo${a:=123}
123
[root@tx1~]#echo$a
123
[root@tx1~]#echo${b:=123}
abc
[root@tx1~]#echo$b
Abc


@4.
[root@tx1~]#unseta
[root@tx1~]#echo${a:?}
bash:a:parameternullornotset
[root@tx1~]#echo${a:?没有设置变量}
bash:a:没有设置变量
(7)变量的婚配形式
#:从变量的值的头部入手下手最小婚配,然后删除
##:从变量的值的头部入手下手最年夜婚配,然后删除
%:从变量的值的尾部入手下手最小婚配,然后删除
%%:从变量的值的尾部入手下手最年夜婚配,然后删除
:num1:num2:截取变量的值,num1是入手下手的地位,num2是截掏出来几位;0是第一个字符
@1.
[root@tx1~]#echo${pth#*/}
usr/bin/local/bin/all
[root@tx1~]#echo${pth##*/}
all
@2.
[root@tx1~]#echo${pth%/*}
/usr/bin/local/bin
[root@tx1~]#echo${pth%%/*}


[root@tx1~]#
@3.
[root@tx1~]#echo${pth:0:6}
/usr/b
[root@tx1~]#echo${pth:3:6}
r/bin/
三.If语句
1.单分支if语句.
if[前提表达式];then
下令;...
fi
注:前提满意的时分,就会运转then前面的语句,不满意就间接加入判别语句


2.双分支if语句
if[前提表达式];then
下令;...
else
下令;...
fi
注:等前提满意的时分就会运转then前面的语句,前提不满意的时分就运转else前面的语句。
3.前提表达式(mantest)
1字符串的判别
str1=str2反省str1str2是不是不异
str1!=str2反省str1str2是不是分歧
str1<str2反省str1是不是小于str2
str1>str2反省str1是不是年夜于str2
-nstr1反省str1的长度是不是年夜于0
-zstr1反省str1的长度是不是为0
=~:判别右边的字符串是不是可以被右侧的形式所婚配[["$opt1"=~pattern]],注:判别字符串的时分,字符串要用""包起来(更具体的mantest


(2)整数的判别
-eq即是
-ge年夜于即是
-gt年夜于
-le小于即是
-lt小于
-ne不即是
3文件的判别
-bfile判别是不是存在且为块文件
-cfile判别是不是存在且为字符文件
-dfile判别是不是存在且为目次文件
-efile判别文件是不是存在
-ffile判别文件是不是存在且为一个一般文件
-hfile判别是不是存在且为标记链接
-rfile判别是不是存在且可读
-sfile判别是不是存在且不为空
-wfile判别是不是存在且可写
-xfile判别是不是存在且可实行
-Ofile判别是不是存在且用户为以后用户
-Gfile判别是不是存在且组为以后组


(4)前提语句
与-a
if[表达式1-a表达式2]


或-o
if[表达式1-o表达式2]


非!
if[!表达式]

[[表达式1&&表达式2]]==-a
[[表达式1||表达式2]]==-o
[[!表达式]]==!
if表达式
then
command
elif表达式
then
command
elif表达式
then
command
......
else
command
fi


(5)多重判别


1.
注:read-p
-t超不时间-t3(秒)
-s输出没有回显,(暗码)
[root@tx1~]#vimtx1.sh
#!/bin/bash
#这是一个判别文件范例的剧本
if[-b/dev/hda1]
then
echo"块装备"
山那边是海 该用户已被删除
沙发
发表于 2015-1-16 10:47:50 | 只看该作者

给大家带来shell剧本使用及轮回语句

有疑问前,知识学习前,先用搜索。
再见西城 该用户已被删除
板凳
发表于 2015-1-21 06:09:30 | 只看该作者
任何一个叫做操作系统的东西都是这样子构成的:内核+用户界面+一般应用程序。
老尸 该用户已被删除
地板
发表于 2015-1-30 09:40:44 | 只看该作者
应对Linux的发展历史和特点有所了解,Linux是抢占式多任务多用户操作系统,Linux最大的优点在于其作为服务器的强大功能,同时支持多种应用程序及开发工具。
谁可相欹 该用户已被删除
5#
发表于 2015-2-16 00:49:34 | 只看该作者
感谢老师和同学们在学习上对我的帮助。
活着的死人 该用户已被删除
6#
发表于 2015-3-4 22:26:28 | 只看该作者
任何人都可以根据自己的喜好来定制适合自己的操作系统,Linux?是抢占式多任务多用户操作系统.
愤怒的大鸟 该用户已被删除
7#
发表于 2015-3-11 21:53:28 | 只看该作者
熟悉系统的基本操作,Linux的图形界面直观,操作简便,多加上机练习就可熟悉操作,在Linux下学习办公软件等常用软件。
莫相离 该用户已被删除
8#
发表于 2015-3-19 16:22:35 | 只看该作者
放手去搞。尽量不要提问,运用搜索找答案,或者看wiki,从原理上理解操作系统的本质,而不是满足于使用几个技巧。尽量看英文资料。
蒙在股里 该用户已被删除
9#
发表于 2015-3-29 22:14:20 | 只看该作者
我学习Linux的心得体会 ,希望对大家的学习有所帮助,由于水平有限,本文难免有所欠缺,望请指正。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-5-5 23:44

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表