当前位置:首页 >> 核电技术聚变聚能设备 >> 【Shell】Shell基础学习,忆捷m880

【Shell】Shell基础学习,忆捷m880

cpugpu芯片开发光刻机 核电技术聚变聚能设备 1
文件名:【Shell】Shell基础学习,忆捷m880 【Shell】Shell基础学习 一、shell脚本 (1)第一个shell脚本 #!/bin/bash #this is a commentecho "hello world"

一个shell脚本永远以“#!”开头,这是一个脚本开始的标记,它是告诉系统执行这个文件需要用某个解释器,后面的/bin/bash就是指明解释器的具体位置。

“#”开头是注释

(2)脚本运行方式

①直接bash一个文件指明使用bash shell来解释脚本。

bash test.sh

②给脚本加执行权限,‘’./ “执行脚本

chmod +x test.sh./test.sh

如果希望将一个脚本设置成默认系统命令,只需将该脚本复制到系统$PATH变量所在的目录中,同时赋予可执行权限。下次运行直接输入命令即可。

(3)shell内建命令 ① 如何确定内建命令:type type cdtype ifconfig ② 执行程序:. 和source . ./test.shsource test.sh ③创建命令别名:alias ④ 切换目录:cd ⑤ 声明变量:declare/typeset #!/bin/bash#shell是弱类型编程语言,声明变量时并不需要指明类型declare str="hello world"echo $strdeclare a=1echo $adeclare pi=3.14echo $pifun1(){echo "fun1"}fun2(){echo "fun2"}#使用-r 声明变量为只读,不允许修改#使用-a 声明变量#使用-F 显示脚本定义的函数#使用-f 显示脚本定义的函数体echo "declare -F"declare -Fecho "declare -f"declare -f ⑥ 打印字符:echo

该命令默认最后加上换行符,使用 -n 参数可以不打印换行符。

默认情况,禁止解释打印反斜杠转义的字符,若需要打印转义字符,需要使用 -e 参数

⑦ 循环控制:break(跳出循环)/continue (跳过当次循环,进入下一次循环) ⑧ 退出shell:exit ⑨ 整数运算:let #支持+ - * /(计算结果为整数) % **(次方) let a=2+2 #a=4let b=2**3 #b=8#支持自增/自减let i++let j--#支持+= -= *= /= %=let c+=10 二、shell编程基础 1、变量 (1)变量名

shell变量必须以字母或下划线开头,后面可以跟数字、字母、下划线,变量长度没有限制。

变量区分大小写。

(2)变量赋值与取值 ① 赋值

【定义变量】 变量名=变量值

【注意点1】变量名和变量值之间用等号相连,之间没有任何空格,等号任何一边出现空格就会出错。

【注意点2】当变量中有空格时必须用引号(可以是双引号或单引号)括起来,否则会出错。

② 取值

在变量前加 $ ,或使用${}.

【注意点3】如果变量值引用了其他变量,必须使用双引号。因为单引号会阻止shell解释特殊字符$

(3)取消变量unset

取消变量指将变量从内存中释放,使用命令unset,后面跟变量名。函数也可以被取消,unset后面跟函数名。

(4)数组

数组的每一项称为一个元素,对于每个元素可以使用索引方式取值。数组并不要求数组的每个元素都是相同类型。随时可以根据需要向数组中增加元素。

declare -a arr #定义一个数组arr[0]=1arr[1]=2arr[2]='hello world' #特殊shell中允许如此#可以在创建时赋值declare -a name=('jack' 'bob')#可以给特定的元素赋值declare -a numbers=([2]=2 [4]=4)#只给2,4索引元素赋值#数组取值${数组名[索引]}echo ${name[1]}#取数组所有元素echo ${name[*]}echo ${name[@]}#从表面上两者没有区别,但${name[*]}得到的是一个字符串,${name[@]}是以空格隔开的元素值#获取数组元素个数(数组长度)echo ${#name[*]}echo ${#name[@]}#字符串数组也可以获取某个元素的长度echo ${#name[1]}#数组截取:可以是截取数组的一部分,也可以是截取数组元素的一部分echo ${name[@]:0:2}#截取数组name,0表示从索引0开始,数字2表示取两个元素echo ${name[1]:0:2}#截取元素name[1]#数组连接:将若干数组拼接conn=(${name[@]} ${name2[@]})#元素替换:将数组元素值替换成其他值conn=(${conn[@]/jack/hellojack})#取消元素/数组:使用unset将元素释放unset conn[0]#取消数组索引0元素unset conn #取消数组conn (5)只读变量(常量)

这种变量在声明时就要求赋值,并之后无法修改。可以使用readonly内建命令创建,和declare -r 效果声明变量效果一致。

(6)变量的作用域

shell变量的作用域是在本shell内,属于本shell的全局变量,也就是从定义该变量开始到shell结束,或到主动使用unset删除该变量的地方为止。在变量的作用域内,该变量都是可见的,在函数内对变量也是可以访问、修改的。

#!/bin/bashdeclare
协助本站SEO优化一下,谢谢!
关键词不能为空
同类推荐
«    2025年12月    »
1234567
891011121314
15161718192021
22232425262728
293031
控制面板
您好,欢迎到访网站!
  查看权限
网站分类
搜索
最新留言
文章归档
网站收藏
友情链接