仓酷云

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

[其他Linux] 来看看:shell剧本中一些特别标记

[复制链接]
海妖 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-16 11:58:28 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
只要了解了Linux的基础之后,应该就可以很轻易的解决掉这方面的问题。而有些朋友们常常一接触Linux就是希望构架网站,根本没有想到要先了解一下Linux的基础。这是相当困难的。
<divclass="start">1、{}年夜括号:
用法一:通配符扩大
eg:lsmy_{finger,toe}s
这条命令相称于以下命令的组合:
lsmy_fingersmy_toes
eg:mkdir{userA,userB,userC}-{home,bin,data}我们将失掉userA-home,userA-bin,userA-data,userB-home,userB-bin,userB-data,userC-home,userC-bin,userC-data,这几个目次用法二:可用于语句块的机关,语句之间用回车离隔。假如你想在某些利用单个语句的中央(好比在AND或OR列表中)利用多条语句,你能够把它们括在花括号{}中来机关一个语句块。
eg:
{
grep-v"$cdcatnum"$strack_file>$temp_file
cat$temp_file>$strack_file
echo
cat-nfile1
}(注:以上年夜括号中的四句命令够成了一个语句块)
用法三:参数扩大
${name:-default}利用一个默许值(通常为空值)来取代那些空的大概没有赋值的变量name;
${name:=default}利用指定值来取代空的大概没有赋值的变量name;
${name:?message}假如变量为空大概未赋值,那末就会显现堕落误信息并中断剧本的实行同时前往加入码1。
${#name}给出name的长度
${name%word}从name的尾部入手下手删除与word婚配的最小部分,然后前往残剩部分${name%%word}从name的尾部入手下手删除与word婚配的最长部分,然后前往残剩部分${name#word}从name的头部入手下手删除与word婚配的最小部分,然后前往残剩部分${name##word}从name的头部入手下手删除与word婚配的最长部分,然后前往残剩部分(注,name为变量名,word为要婚配的字符串)
用法三在处置字符串和未知变量时,是很有效的。
2、[]中括号:
用法一:通配符扩大:
同意婚配方括号中任何一个单个字符
eg:ls/[eh][to][cm]*
相称于实行ls/etc/home(如有/eom目次,就相称于会实行ls/etc/home/eom)
注:在mkdir命令下不克不及扩大
用法二:用于前提判别标记:
[]标记可了解为指向test命令的一个软链接,以是其用法可完整参照test,将test地位交换为[即可。
eg:if["$?"!=0]等价于iftest"$?"!=0
thenecho"Executeserror"
3、`command`反引号:`command`与$(command)的寄义不异,都是前往以后实行命令的了局eg:#!/bin/shforfilein$(lsf*.sh);do
lpr$file
done
exit0
该例完成了扩大f*.sh给出一切婚配形式的文件的名字。
4、string单引号和"string"双引号
双引号:假如想在界说的变量中到场空格,就必需利用单引号或双引号,
单、双引号的区分在于双引号本义特别字符而单引号不本义特别字符
eg:$heyyou=home
$echo$heyyou
$$heyyou($没有本义)
eg:$heyyou=home
$echo"$heyyou"
$home(很分明,$本义了输入了heyyou变量的值)
5、$#它的感化是告知你援用变量的总数目是几;
$它的感化是告知你shell剧本的历程号;
$*以一个单字符串显现一切的剧本传送的参数。等价于{GetProperty(Content)}$2$3.......;$@与$*基础相似(拜见序号7),但在数组赋值时有些分歧;$?前一个命令的加入码;
$-显现shell利用确当前选项;
$!最初一个背景运转的历程ID号。
海妖 该用户已被删除
沙发
 楼主| 发表于 2015-1-16 13:24:02 | 只看该作者

来看看:shell剧本中一些特别标记

要明白学好linux不是一件一蹴而就的事,一定要能坚持使用它,特别是在使用初期。
>6、$((...))语法:对括号内的表达式求值</P>eg:
#!/bin/sh
x=0
hile["$x"-ne10];do
echo$x
x=$(($x+1))
done
exit0
7、shell中几种特别的参数变量的援用
{GetProperty(Content)}、$2、$3……${10}、${11}、${12}……:暗示剧本传进的的各个参数,注重当需暗示两位数今后的参数时数字要用花括号括起。
$@列出一切的参数,各参数用空格离隔$*:列出一切的参数,各参数用情况变量IFS的第一个字符离隔
8、命令列表:
AND列表statement1&&statement2&&statement3&&…:只要在后面一切的命令都实行乐成的情形下才实行后一条命令
OR列表statement1||statement2||statement3||…:同意实行一系列命令直到有一条命令乐成为止,厥后一切命令将不再被实行eg:#!/bin/sh
touchfile_one
rm-ffile_two
if[-ffile_one]&&echo"hello"&&[-ffile_two]&&echo"there"
then
echo"inif"
else
echo"inelse"
fi
exit0
上例的输入为:
hello
inelse
关于AND列表与OR列表,在逻辑判别中很利用,上面就举一个其最经常使用的例子:
[condition]&&commandfortrue||commandforfalse:
当前提为真时,实行commandfortrue,当前提为假时,实行commandforfalse
9、:冒号:内建空指令,前往值为0
eg:$:
$echo$?
$0
while:(该语句布局可完成一个无穷轮回)
10、;分号:在shell中,担当"一连指令"功效的标记就是"分号"eg:cd~/backup;mkdirstartup;cp~/.*startup/.
11、#井号:暗示标记前面的是注解笔墨,不会被实行;*婚配文件名中的任何字符,包含字符串;?婚配文件名中的任何单个字符。
~代表利用者的home目次
12、\倒斜线:放在指令前,有作废aliases(别号)的感化;放在特别标记前,则该特别标记的感化消散;放在指令的最末了,暗示指令毗连下一行(使得回车符有效,只起换行感化)
14、!叹息号:一般它代表反逻辑的感化,比如前提侦测中,用!=来代表"不即是"
15、**次方运算:两个星号在运算时期表"次方"的意义
eg:let"sus=2**3"
echo"sus=$sus"
$sus=8-
</p>
上一页12


系统管理相关命令:df、top、free、quota、at、lp、adduser、groupaddkill、crontab、tar、unzip、gunzip、last
兰色精灵 该用户已被删除
板凳
发表于 2015-1-18 16:47:32 来自手机 | 只看该作者
期间我阅读了不少关于Linux的相关资料,其中也不乏一些有趣的小故事,这既丰富了我的课余生活,也让我加深了对一些术语的理解,比玩游戏强多了。?
飘飘悠悠 该用户已被删除
地板
发表于 2015-1-27 12:46:37 | 只看该作者
如果上面的措施没有解决问题,此时你就需要Linux社区的帮助了。 Linux的使用者一般都是专业人士,他们有着很好的电脑背景且愿意协助他人。
再见西城 该用户已被删除
5#
发表于 2015-2-5 13:36:13 | 只看该作者
现在的linux操作系统如redhat,难点,红旗等,都是用这么一个内核,加上其它的用程序(包括X)构成的。
深爱那片海 该用户已被删除
6#
发表于 2015-2-12 02:49:13 | 只看该作者
学习Linux,应该怎样学,主要学些什么,一位Linux热心学习者,一段学习Linux的风云经验,历时十二个小时的思考总结,近十位网络Linux学习者权威肯定,为您学习Linux指明方向。
飘灵儿 该用户已被删除
7#
发表于 2015-3-2 22:16:55 | 只看该作者
把这个问题放在其他Linux社区请求帮助也是一种选择。如果Linux得不到答案,请不要以为我们觉得无法帮助你。有时只是看到你问题的人不知道答案罢了。这时换一个社区是不错的选择。
小魔女 该用户已被删除
8#
发表于 2015-3-11 08:32:43 | 只看该作者
其实老师让写心得我也没怎么找资料应付,自己想到什么就写些什么,所以不免有些凌乱;很少提到编程,因为那些在实验报告里已经说了,这里再写就多余了。
变相怪杰 该用户已被删除
9#
发表于 2015-3-18 07:25:15 | 只看该作者
这也正是有别的OS得以存在的原因,每个系统都有其自身的优点。?
分手快乐 该用户已被删除
10#
发表于 2015-3-25 18:29:53 | 只看该作者
用户下达的命令解释给系统去执行,并将系统传回的信息再次解释给用户,估shell也称为命令解释器,有关命令的学习可参考论坛相关文章,精通英文也是学习Linux的关键。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2024-12-23 21:35

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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