我的编程空间,编程开发者的网络收藏夹
学习永远不晚

C高级 DAY3

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

C高级 DAY3

一、shell中的变量

shell本身是擅长运行指令,是一种弱数据类型语言

它与c语言中定义变量有所不同

C中:存储类型 数据类型 变量名; shell中:变量=变量的值       ----->如果变量的值中间没有空格直接使用变量='变量的值'     ----->变量的值中间有空格变量="变量的值"     ----->使用一个已有的变量给新的变量赋值,并且赋值中有空格时''内,$变量名,不会被展开

注意:shell中等号两边不允许有空格,空格会被识别为一个指令

使用变量时在变量前加$

$变量名        ${变量名}        无法区分变量名时使用

不使用${变量名} 

name="John"echo "$nameDoe"  # 这将不会输出任何东西,因为Shell会尝试查找一个名为nameDoe的变量

 使用${变量名} 

name="John"echo "${name}_Doe"  # 这将输出 "John_Doe"

shell脚本的本质:命令的集合

修饰变量关键字

readonly  ---->只读不能修改unset     ---->清空变量(不能清空只读(readonly)的变量)local     ---->定义局部变量(只能在函数中使用)

位置变量

用来接收脚本的外部传参(在命令行传递过来)

$数字

注意:9以上的数字需要加{}如${10} ${11}...

命令置换符

拿到指令输出的结果(赋值给变量)

sudo apt-get install lolcat

自动换行`` :反引号,esc键下面就是``   ----->常用$()

二者是一个效果,只是想要使用反引号得需要下载

$():命令替换        ${}:变量替换或变量操作

二、shell中的数组

C中int arr[4]={1,2,3,4}; shell:数组名=(1 2 3 4)    ----->每个元素之间以空格作为分隔 shell中支持稀疏数组数组名=([下标]=初始值1 [下标]=初始值2 ·····) #!/bin/bash arr=(12 90 89 100)    #shell中支持稀疏数组,下标不连续的数组 brr=([0]=90  [3]=70  [7]=900)  crr[0]=29   #给crr数组中下标为0的元素赋值 crr[3]=78   #给crr数组中下标为3的元素赋值   #再重新给brr中没有提供的下标的元素赋值 brr[4]=67  echo ${brr[4]} echo ${crr[3]}

访问数组中的所有元素

${数组名[*]}        ${数组名[@]}

如果要记录数组中元素个数

${#数组名[#]}

三、shell中的输入输出

输出

echo        默认不解析转义字符并且会自动换行

-e:让echo指令解析转义字符

-n:取消换行

输入

read  变量名  
read -s 变量名    ---->输入的内容不回显
read -p "提示信息" 变量名   ----->-p回显提示信息
read -n 字符个数  变量名    ----->控制输入的字符个数,当超过会自动停止
read -t 秒数 变量名         ----->控制读入数据的时间,如果指定时间内不输入会自动停止
read -a 数组名    ---->输入数组

四、shell中的算术运算

shell本身不擅长算术运算,需要借助于运算符和其他指令

(())         $[]         let         expr

(())

使用方法:

  1. ((表达式1,表达式2,表达式3,····))每一个表达式都会执行,取到最后一个表达式的结果
  2. (())内使用变量时,可以加$也可以不加$
  3. (())内的运算符两侧,可以有空格也可以没有空格
  4. 变量名=$((表达式)),获取(())的运算结果
  5. 可以直接在(())内进行赋值操作,((var1 = var1+var2))

$[]

使用方法: (仍然支持幂运算和自增自减运算)

  1. 变量名=$[表达式1,表达式2,表达式3,····],每一个表达式都执行,获取最后一个表达式的结果
  2. 运算时,运算符两侧可以有空格也可以没有空格
  3. 使用变量时,可以加$也可以不加$
  4. $[]本质上会遗留一个计算结果在,运算所在行,可以选择直接echo $[表达式] ,变量名=$[表达式]

let

使用方法:

  1. let 变量名=表达式 ----->let和变量名中间一定有空格
  2. let使用变量可以加$,也可以不加$
  3. let运算时,运算符两侧一定不能有空格
  4. let 表达式,运算是可以进行的但是没有办法接收运算的结果

expr

expr是一条指令

使用方法:

  1. expr使用变量的值时,必须加$
  2. 运算符两侧必须加空格 (不支持幂运算和自增自减运算)
  3. expr在使用时,一些字符需要转义,*,>,<,&,|······(简单的expr语句,可以先在命令行敲出来,出现语法错误说明有转义字符)
  4. expr直接回显指令的执行结果到终端

expr对字符串的运算

match str1  str2    返回str2在str1中完全匹配的个数(str2可以作为str1中子串)        substr STRING POS LENGTH    如果字符串长度不够截取长度,就把字符串中所有的内容都截取出来    从string中的第pos个位置开始截取长度为length的子串(pos从1开始) index STRING CHARS    返回字符在字符串中第一次出现的位置,如果是多个字符,返回最先在字符串中出现的字符的下标    (下标从1开始) length STRING    求字符串的长度

五、shell中的分支语句

if...else分支

[]就是test指令#单分支结构if [ test语句 ]    -----> if  test 表达式 then    语句块fi #双分支if [ test语句 ]    -----> if  test 表达式 then    语句块else     条件不成立执行的语句块fi #多分支语句if [ test语句 ]    -----> if  test 表达式 then    语句块elif [ test语句 ]   ------> elif test 表达式 then    条件不成立执行的语句块fi #!/bin/bash num1=90 num2=300 #if [ $num1 -le $num2 ] if test $num1 -le $num2 then  echo "num1<=num2" fi 

来源地址:https://blog.csdn.net/weixin_69028524/article/details/132791520

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

C高级 DAY3

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

2023-09-12

c语言算高级语言吗

是。c 语言是一种高级语言,具备抽象性、可移植性、结构化和支持高级数据类型等特征,抽象出底层硬件细节,在不同计算机平台上运行,并使用结构化编程和高级数据类型。C 语言是否属于高级语言?答案: 是详细解释:C 语言是一种高级语言,具有以
c语言算高级语言吗
2024-04-13

c语言属于高级语言吗?

是的,c语言被认为是一种高级语言,因为它具有易读性、可移植性、可维护性和抽象性等特点。C语言是否属于高级语言?是的,C语言被认为是一种高级语言。详细解释:高级语言是一种更接近人类语言的编程语言。与低级语言(如汇编语言)相比,高级语言具
c语言属于高级语言吗?
2024-04-13

C++ 函数指针高级指南:探索高级用法和最佳实践

c++++ 函数指针的高级用法:函数指针数组:将多个函数指针存储在数组中,方便调用不同类型的函数。函数指针作为函数参数:将函数指针作为其他函数的参数,实现代码的动态性和可重用性。标准库函数指针:利用 std::function 和 std:
C++ 函数指针高级指南:探索高级用法和最佳实践
2024-04-29

C++ 智能指针:从基础到高级

智能指针是 c++++ 专用指针,能够自动释放堆内存对象,避免内存错误。类型包括:unique_ptr:独占所有权,指向单一对象。shared_ptr:共享所有权,允许多个指针同时管理对象。weak_ptr:弱引用,不增加引用计数,避免循环
C++ 智能指针:从基础到高级
2024-05-09

有哪些C语言的高级用法

本篇内容主要讲解“有哪些C语言的高级用法”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“有哪些C语言的高级用法”吧!整形溢出和提升大部分 C 程序员都以为基本的整形操作都是安全的其实不然,看下面这
2023-06-16

c语言是高级语言的一种吗

是的,c语言是一种高级语言,具备可移植性、结构化、丰富数据类型、控制流和抽象等高级语言特征,可创建可重用的代码模块和管理内存。C语言是高级语言吗?是的。C语言是一种高级语言。详细解释:高级语言与低级语言的区别在于抽象程度。高级语言更接
c语言是高级语言的一种吗
2024-04-13

软考高级是正高级还是副高级职称

  考取了软考高级资格证书可以评高级职称,软考高级可以评的职称为副高职称,要评正高级职称的话需要取得了副高职称才能申请。  考取了软考高级证书可以评副高职称,想要评正高级职称的话需要取得副高级职称才能申请。根据原人事部、原信息产业部颁布的《关于印发〈计算机技术与软件专业技术资格(水平)考试暂行规定〉和〈计算机技术与软件
软考高级是正高级还是副高级职称
2024-04-19

软考高级有正高级吗

  没有。考取了软考高级资格证书可以评高级职称,软考高级可以评的职称为副高职称,要评正高级职称的话需要取得了副高职称才能申请。  考取了软考高级证书可以评副高职称,想要评正高级职称的话需要取得副高级职称才能申请。  根据原人事部、原信息产业部颁布的《关于印发〈计算机技术与软件专业技术资格(水平)考试暂行规定〉和〈计算机
软考高级有正高级吗
2024-04-19

软考高级是副高级吗

  取得软考高级证书可以聘任的职称为副高级,​职称是需要评聘的,有了软考高级证书就有了评职称的相应资格,可以申请评副高职称。  有了软考高级证书就有了评高级职称的相应资格,可以申请评副高职称。通过软考获得证书的人员,表明其已具备从事相应专业岗位工作的水平和能力,用人单位可根据工作需要从获得证书的人员中择优聘任相应专业技
软考高级是副高级吗
2024-04-19

软考高级过了就是高级职称吗?软考高级算不算高级职称

  很多地区的积分落户和居住证都和职称挂钩,我们都知道软考有以考代评的性质,那么,软考高级过了就是高级职称吗?软考高级算不算高级职称?  职称的取得有认定、评审、国家统一考试(以考代评)以及职业资格对应等方式,软考高级证书就属于以考代评的性质,不需要继续教育,无需额外评审。  但是,软考高级过了,并不代表就是高级职称。
软考高级过了就是高级职称吗?软考高级算不算高级职称
2024-04-19

软考高级是高级职称吗?

  软考高级是不是高级职称?软考高级和高级职称到底是什么关系?软考高级怎样才能评高级职称?有些朋友还不太清楚软考高级和高级职称的关系,赶紧来了解下吧!  软考高级和高级职称是有一定关系的,评高级职称首先要具备相应的资格,而有了软考高级证书就具备了评高级职称的相应资格。  根据原人事部、原信息产业部颁布的《关于印发〈计算
软考高级是高级职称吗?
2024-04-19

软考高级是评副高级吗

  取得软考高级证书可以聘任的职称为副高级,​职称是需要评聘的,有了软考高级证书就有了评职称的相应资格,可以申请评副高职称。  有了软考高级证书就有了评高级职称的相应资格,可以申请评副高职称。通过软考获得证书的人员,表明其已具备从事相应专业岗位工作的水平和能力,用人单位可根据工作需要从获得证书的人员中择优聘任相应专业技
软考高级是评副高级吗
2024-04-19

编程热搜

目录