温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

linux shell脚本相关知识

发布时间:2020-06-13 13:11:43 来源:网络 阅读:236 作者:宵云科技 栏目:系统运维

最近的项目中,有一个编写linux shell脚本的任务。由于之前不是很熟悉,在这个过程中遇到了很多困难,查找了很多资料,也收获了很多。下面宵云网络就分享一下linux shell脚本中常用的知识总结。

1基础语法
1.1变量
使用一个定义过的变量,只要在变量名前面加美元符号即可
your_name="qinjx"
echo $your_name
echo ${your_name}

1.2字符串
字符串可以用单引号,也可以用双引号,也可以不用引号。

单引号
单引号里的任何字符都会原样输出,单引号字符串中的变量是无效的;
单引号字串中不能出现单引号(对单引号使用转义符后也不行)。

双引号
双引号里可以有变量

双引号里可以出现转义字符

1.3传递参数
$# 表示执行脚本传入参数的个数

$* 表示以一个单字符串显示所有向脚本传递的参数。

如"$*"用「"」括起来的情况、以"$1 $2 … $n"的形式输出所有参数。

$$ 表示脚本运行的当前进程ID号

$@ 与$*相同,但是使用时加引号,并在引号中返回每个参数。

如"$@"用「"」括起来的情况、以"$1" "$2" … "$n" 的形式输出所有参数。

$0 表示执行脚本名称

$1 表示第一个参数

$? 显示最后命令的退出状态。0表示没有错误,其他任何值表明有错误。

1.4基本运算符
原生bash不支持简单的数学运算,但是可以通过其他命令来实现,例如 awk 和 expr,expr 最常用。

expr 是一款表达式计算工具,使用它能完成表达式的求值操作。

val=expr 2 + 2
条件表达式要放在方括号之间,并且要有空格,例如: [$a==$b] 是错误的,必须写成 [ $a == $b ]。

乘号(*)前边必须加反斜杠()才能实现乘法运算;

if...then...fi 是条件语句,后续将会讲解。

在 MAC 中 shell 的 expr 语法是:$((表达式)),此处表达式中的 "*" 不需要转义符号 "" 。

2常用命令
2.1printf 命令
printf 命令的语法:

printf format-string [arguments...]

printf "%-10s %-8s %-4s\n" 姓名 性别 体重kg

%s %c %d %f都是格式替代符

%-10s 指一个宽度为10个字符(-表示左对齐,没有则表示右对齐),任何字符都会被显示在10个字符宽的字符内,如果不足则自动以空格填充,超过也会将内容全部显示出来。

%-4.2f 指格式化为小数,其中.2指保留2位小数。

2.2test 命令
test 命令用于检查某个条件是否成立,它可以进行数值、字符和文件三个方面的测试。

文件表达式
-e filename 如果 filename存在,则为真
-d filename 如果 filename为目录,则为真
-f filename 如果 filename为常规文件,则为真
-L filename 如果 filename为符号链接,则为真
-r filename 如果 filename可读,则为真
-w filename 如果 filename可写,则为真
-x filename 如果 filename可执行,则为真
-s filename 如果文件长度不为0,则为真
-h filename 如果文件是软链接,则为真
filename1 -nt filename2 如果 filename1比 filename2新,则为真。
filename1 -ot filename2 如果 filename1比 filename2旧,则为真。

字符串变量表达式
If [ $a = $b ] 如果string1等于string2,则为真(字符串允许使用赋值号做等号)
if [ $string1 != $string2 ] 如果string1不等于string2,则为真
if [ -n $string ] 如果string 非空(非0),返回0(true)
if [ -z $string ] 如果string 为空,则为真
if [ $sting ] 如果string 非空,返回0 (和-n类似)

2.3read命令
-n(不换行) -p(提示语句) -n(字符个数) -t(等待时间) -s(不回显)
如:

read -p "Enter your name:" name
3压缩与解压缩
解压:tar -zxvf FileName.tar
压缩:tar -czvf FileName.tar DirName

3.1五个独立命令
压缩解压都要用到其中一个,可以和别的命令连用但只能用其中一个。

-c: 建立压缩档案
-x:解压
-t:查看内容
-r:向压缩归档文件末尾追加文件
-u:更新原压缩包中的文件

3.2 五个可选参数
根据需要在压缩或解压档案时可选的。
-z:有gzip属性的
-j:有bz2属性的
-Z:有compress属性的
-v:显示所有过程
-O:将文件解开到标准输出

3.3 一个必选参数
-f: 使用档案名字,切记,这个参数是最后一个参数,后面只能接档案名

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI