硕彦博创学习笔记(C语言班-李飞授)11_30日记

硕彦博创学习笔记(C语言班-李飞授)11_30日记

Shell语言初识
关于文件夹的压缩和归档
1、归档
将多个文件打包在一起 tar (归档,解档)
在这里插入图片描述
将上图中的文件夹1129 1130文件夹归档输入命令
:tar -cvf note.tar 1130 1129
将文件夹1130 1129归档到note.tar的文件夹中
在这里插入图片描述
注:归档后原文件夹仍存在。
解档文件:
tar -xvf note.tar
在这里插入图片描述
注:解档后原存在,但不不会出现提示。
2、压缩与解压
压缩有很多种方法,或者说有很多种版本的命令
1.gzip是GNU组织开发的一个压缩程序
文件的后缀名为.gz
使用方法:
压缩:tar -czf note.tar.gz 文件列表
解压缩:tar -xzf note.tar.gz
注:note.tar只是一个文件名。总体是文件名.tar是个人爱好解释他的文件属性是一个tar型文件
例:在这里插入图片描述
将1129 1130压缩成一个note.tar.gz的压缩文件
在这里插入图片描述
压缩完成后的结果,可见压缩比还是蛮高的
2.bzip也是压缩命令,压缩的能力更强
压缩:
tar -cjf note1.tar 文件列表
解压:
tar -xjf note.tar
例:在这里插入图片描述
将1129 1130 用bzip程序压缩成一个note1文件。
在这里插入图片描述
将文件note1.tar解压
3.zip程序压缩与解压
压缩:zip note2.zip 文件列表
解压:unzip note2.zip
例:
在这里插入图片描述
将文件夹1129 1130使用zip程序压缩成note2压缩文件
在这里插入图片描述
解压note2.zip文件

Shell脚本

为了完成某一个任务,将相关的shell命令存放在文件中,并自动执行。
1、脚本解释器:/bin/bash
2、Shell源文件的后缀.sh
3、编写第一个Shell脚本

# !/bin/bash

comman

注:# !/bin/bash是shell脚本的解释器。必须有这行操作才能执行下面的命令。
4、输入输出
输出:echo “信息” 输出一行消息
printf"格式" 输出内容
输入:
read 变量名
read -p “提示消息” 变量名
5、执行程序的顺序是:路径/文件名
6、执行的顺序是:从上到下
7、程序=算法+数据
Shell语言是一门弱语言:shell中没有数据类型,只有一个字符串类型
定义变量:
变量名=值
var=123
引用变量的内容:
${变量名}
结果为123
获取变量的长度:
${#var}
获取字符串:
v a r : n : m n m 0. S H E L L h e l l o h e l l o " h e l l o " : " {var:n:m} 获取字符串中n-m区间的内容,注意字符串是从零开始记录下表,即第一个字符的下标为0. SHELL语言中字符串的表示法: 有三种方法: ①:不加符号 hello ②:加单引号 'hello' ③:加双引号 "hello" 加单引号,则引号内的全是字符串,不含变量。加双引号可以用命令符引用变量 例:" {var} hello"
则显示的结果为123 hello
8.转义字符
和C语言中一样 \n代表换行,\t代表制表符等等、
9.数值测试
test : 比较两个数字的大小关系
用法:
test num1 -ge num2
测试num1是否大于等于num2
test中有很多种关系比较
-ge代表大于等于(greatorequal)
-gt代表大于(greatthen)
-le代表小于等于(lessorequal)
-lt代表小于(lessthen)
-ne代表不等于(notequal)
10.流程控制:
①选择控制
②循环控制
选择控制:当某条件成立时,才执行。否则不执行
语法:
if condition
then
command
else
command
fi

多分支:
if condition1
then
command1
elif conditon2
then
command2
elif conditon3
then
command3
else
command
fi
嵌套结构的if
if condition
then
if condition1
then
if conditon2
then
command2

fi
fi
else

fi
注:一定一个if后面一定要有一个对应的fi作为结束。
练习:
求num1,num2,num3的最大值
拨高:
注:shell语言中空格不可随意添加,例如在定义变量的=前后不可加空格。
在第5题中,求次大值
代码:
# !/bin/bash
read -p"输入第一个数:" num1
read -p"输入第二个数:" num2
read -p"输入第三个数:" num3
if test ${num1} -ge ${num2}
then
if test ${num1} -ge n u m 3 t h e n e c h o " {num3} then echo "最大的数值为: {num1}"
if test ${num2} -ge n u m 3 t h e n e c h o " {num3} then echo "次大值为: {num2}"
else
echo “次大值为: n u m 3 " f i e l s e e c h o " {num3}" fi else echo "最大值为: {num3}”
echo “次大值为:${num1}”
fi
else
if test ${num2} -ge n u m 3 t h e n e c h o " {num3} then echo "最大值为: {num2}"
if test ${num1} -ge n u m 3 t h e n e c h o " {num3} then echo "次大值为: {num1}"
else
echo “次大值为: n u m 3 " f i e l s e e c h o " {num3}" fi else echo "最大值为: {num3}”

            echo "次大值为:${num2}"
    fi

fi

猜你喜欢

转载自blog.csdn.net/weixin_43670872/article/details/84669069
今日推荐