注释符
“#”开头的正文行表示注释行。
输入重定向
命令 < 文件名
here文档的重定向操作符使用<<。当前命令的
标准
excel标准偏差excel标准偏差函数exl标准差函数国标检验抽样标准表免费下载红头文件格式标准下载
输入来自命令行。
输出重定向
一般形式为:命令>文件名。如果>符号后边的文件已存在,那么这个文件将被重写。
追加重定向操作符>>。形式为:命令>>文件名。
错误输出也可以重新定向。使用符号2>(或追加符号2>>)表示对错误输出设备重定向。
(&>)将标准输出和错误输出同时送到同一文件中。
管道
管道可以把一系列命令连接起来,这意味着第一个命令的输出会作为第二个命令的输入通过管道传给第二个命令,第二个命令的输出又会作为第三个命令的输入,以此类推。
通过使用管道符“|”来建立一个管道行。
命令替换: 将一个命令的输出作为另外一个命令的参数。command1 `command2`
连同标准错误输出一起送入管道:command1| &command2[|& command3...]
引号
单引号
只作为普通字符解释
双引号
除$、、’、和”这几个字符仍是特殊字符并保留其特殊功能外,其余字符仍作为普通字符对待。
反引号(`)
反引号括起来的字符串被shell解释为命令行,在执行时,shell首先执行该命令行,并以它的标准输出结果取代整个反引号(包括两个反引号)部分。
变量
赋值: 变量名=变量值(等号两边一定不能留空格)
引用: $变量名
为了使变量名和命令名相区别,建议所有的变量名都用大写字母来表示。
常量定义:readly 常量名
此次登陆有效:export 变量名
位置参数是一种在调用shell程序的命令行中按照各自的位置决定的变量,是在程序名之后输入的参数。位置参数之间用空格分隔,shell取第一个位置参数替换程序文件中的$1……
预定义变量: 只能使用变量,而不能重定义它。由$符和另一个符号组成的。
参数置换
变量=${参数-word}:如果设置了参数,则用参数的值置换变量的值,否则用word置换。
变量=${参数=word}:如果设置了参数,则用参数的值置换变量的值,否则把变量设置成word然后再用word替换参数的值。
变量=${参数?word}:如果设置了参数,则用参数的值置换变量的值,否则就显示word并从shell中退出,如果省略了word,则显示标准信息。
变量=${参数+word}:如果设置了参数,则用word置换变量,否则不进行置换。
流程控制
test测试命令
shell用于指定条件值的不是布尔表达式而是命令和字符串。
(1)数值测试:
-eq:等于则为真
-ne:不等于则为真
-gt:大于则为真
-ge:大于等于则为真
-lt:小于则为真
-le:小于等于则为真
(2)字符串测试:
=:等于则为真
!=:不相等则为真
-z 字符串:字符串长度伪则为真
-n 字符串:字符串长度不伪则为真
(3)文件测试:
-e 文件名:如果文件存在则为真
-r 文件名:如果文件存在且可读则为真
-w 文件名:如果文件存在且可写则为真
-x 文件名:如果文件存在且可执行则为真
-s 文件名:如果文件存在且至少有一个字符则为真
-d 文件名:如果文件存在且为目录则为真
-f 文件名:如果文件存在且为普通文件则为真
-c 文件名:如果文件存在且为字符型特殊文件则为真
-b 文件名:如果文件存在且为块特殊文件则为真
(4)逻辑操作符
Linux还提供了与(“!”)、或(“-o)、非(“-a”)三个逻辑操作符用于将测试条件连接起来,其优先级为:“!”最高,“-a”次之,“-o”最低。
算术运算
格式如下:$[expression]
if条件语句
if 条件命令串
then
条件为真时的命令串
else
条件为假时的命令串
fi
for 循环
for 变量名 [in 数值列表]
do
若干个命令行
done
while和until 循环
while
若干个命令行1
do
若干个命令行2
done
只要while的“若干个命令行1”中最后一个命令的返回状态为真,while循环就继续执行do...done之间的“若干个命令行2”。
until
若干个命令行1
do
若干个命令行2
done
until循环和while循环的区别在于:while循环在条件为真时继续执行循环,而until则是在条件为假时继续执行循环。
case 条件选择
case string in
exp-1)
若干个命令行1
;;
exp-2)
若干个命令行2
;;
……
*)
其他命令行
esac
shell通过计算字符串string的值,将其结果依次和表达式exp-1、exp-2等进行比较,直到找到一个匹配的表达式为止,如果找到了匹配项则执行它下面的命令直到遇到一对分号(;;)为止。
在case表达式中也可以使用shell的通配符(“*”、“?”、“[ ]”)。通常用“*”作为case命令的最后表达式以便使在前面找不到任何相应的匹配项时执行“其他命令行”的命令。
无条件控制语句break和continue
函数定义
格式为:
functionname
{
若干命令行
}
调用函数的格式为:
functionname param1 param2 ……
shell函数可以有自己的退出状态,在函数定义时不用带参数说明,但在调用函数时可以带有参数,此时shell将把这些参数分别赋予相应的位置参数$1、$2、...及$*。
命令分组
在shell中有两种命令分组的方法:“()”和“{}”,前者当shell执行()中的命令时将再创建一个新的子进程,然后这个子进程去执行圆括弧中的命令。当用户在执行某个命令时不想让命令运行时对状态集合(如位置参数、环境变量、当前工作目录等)的改变影响到下面语句的执行时,就应该把这些命令放在圆括弧中,这样就能保证所有的改变只对子进程产生影响,而父进程不受任何干扰;{}用于将顺序执行的命令的输出结果用于另一个命令的输入(管道方式)。当我们要真正使用圆括弧和花括弧时(如计算表达式的优先级),则需要在其前面加上转义符(\)以便让shell知道它们不是用于命令执行的控制所用。
捕捉信号……
运行shell程序的方法
按照shell编程的惯例,以bash为例,程序的第一行一般为“#!/bin/bash”,其中#表示该行是注释,叹号“!”告诉shell运行叹号之后的命令并用文件的其余部分作为输入,也就是运行/bin/bash并让/bin/bash去执行shell程序的内容。
执行shell程序的方法:
(1) bash shell程序文件名
优点是可以利用shell调试功能。
(2) bash
本文档为【Bash_shell简单语法总结】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑,
图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。