asp网站建设中期报告,wordpress自定义侧边栏小工具,那个网站适合学生做兼职,北滘网站建设公司一、shell中的变量
shell本身是擅长运行指令#xff0c;是一种弱数据类型语言
它与c语言中定义变量有所不同
C中#xff1a;
存储类型 数据类型 变量名;shell中#xff1a;
变量变量的值 -----如果变量的值中间没有空格直接使用
变量变量的值 -----变量…一、shell中的变量
shell本身是擅长运行指令是一种弱数据类型语言
它与c语言中定义变量有所不同
C中
存储类型 数据类型 变量名;shell中
变量变量的值 -----如果变量的值中间没有空格直接使用
变量变量的值 -----变量的值中间有空格
变量变量的值 -----使用一个已有的变量给新的变量赋值并且赋值中有空格时
内$变量名不会被展开
注意shell中等号两边不允许有空格空格会被识别为一个指令 使用变量时在变量前加$
$变量名 ${变量名} 无法区分变量名时使用
不使用${变量名}
nameJohn
echo $nameDoe # 这将不会输出任何东西因为Shell会尝试查找一个名为nameDoe的变量使用${变量名}
nameJohn
echo ${name}_Doe # 这将输出 John_Doeshell脚本的本质命令的集合
修饰变量关键字
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,表达式2,表达式3,····))每一个表达式都会执行取到最后一个表达式的结果(())内使用变量时可以加$也可以不加$(())内的运算符两侧可以有空格也可以没有空格变量名$((表达式))获取(())的运算结果可以直接在(())内进行赋值操作((var1 var1var2))
$[]
使用方法 (仍然支持幂运算和自增自减运算)
变量名$[表达式1表达式2表达式3····]每一个表达式都执行获取最后一个表达式的结果运算时运算符两侧可以有空格也可以没有空格使用变量时可以加$也可以不加$$[]本质上会遗留一个计算结果在运算所在行可以选择直接echo $[表达式] 变量名$[表达式]
let
使用方法
let 变量名表达式 -----let和变量名中间一定有空格let使用变量可以加$也可以不加$let运算时运算符两侧一定不能有空格let 表达式运算是可以进行的但是没有办法接收运算的结果
expr
expr是一条指令
使用方法
expr使用变量的值时必须加$运算符两侧必须加空格 (不支持幂运算和自增自减运算)expr在使用时一些字符需要转义*|······(简单的expr语句可以先在命令行敲出来出现语法错误说明有转义字符)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
num190
num2300
#if [ $num1 -le $num2 ]
if test $num1 -le $num2
then echo num1num2
fi