Shell

菜鸟Shell 教程
https://www.runoob.com/linux/linux-shell.html

var变量

#!/bin/sh
name="zs"
#thisiszs
# $会把后面连在一起的东西(符合变量的规范)当做变量
echo thisis${name}jingnian18
#!/bin/sh
# 位置变量用或不用都在哪
# 从0开始($0永远是脚本名称)
# $012345
# 位置变量直接$引用只能识别一位(只能识别$后第一位数字)
echo $0
echo $1
echo $2
echo $9
echo ${10} #  100 111
echo $*
echo $#

Str字符串

#拼接
#!/bin/sh
x=10
y=20
echo $x
echo "$x"
echo '$x'
# 10+20
echo $x+$y
echo "$x" + 123  "$y"

#!/bin/sh
str="abcabcdefg"
echo $str
# 获取长度 # *
# 格式 ${#变量名称}
echo ${#str}
# 截取
# 格式:${str:开始下标:个数}
echo ${str::3} # 从0开始截取3个
echo ${str:2:} # 从2开始截取到末尾
echo --------------------------------------------
# 替换单个
# 格式: ${str/旧/新}
# 没有在原字符串进行修改
#echo ${str/abc/123}
str=${str//abc/123}
echo ${str}

# 替换所有
# 格式:${str//旧/新}
str=${str//abc/123}

# 删除
# 格式:${str#表达式}
#!/bin/sh
str="abc,def,g"
# ${str#表达式} 匹配第一个格式 必须从头开始匹配
# ${str##表达式} 匹配到最后一个 必须从头开始匹配
#注意:不能删除中间的内容
#echo ${str##*,}
# ${str%表达式} 表达式顺序从左向右去写
echo ${str%%,*}
echo ${str}

运算符

#!/bin/sh
#第一种运算 使用命令expr
echo `expr 2 + 2`
x=20
y=30
echo `expr $x + $y`
z=`expr $x + $y`
echo $z

echo -----------------------
#第二种 使用符号
#$[]  
echo $[2+2]
echo $[$x+$y]
echo $[x+y]
echo $[a+b]

#!/bin/sh
# true=1 false=0
# false=0 true= !0
echo $[2>1]
echo $[2<1]
x=10
y=20
echo $[$x<$y]
echo $[x<y]

#!/bin/sh
# 与and& 或or| 非!
#$[2>1] $[2>1]
#echo $[2>1 | 2>1]
x=10
y=20
# x>5 and y>80
echo $[x>5 & y>80]

echo $[!2>1]
echo $[!x<5 & y<80]

if语句

#!/bin/sh
#格式 :if开头  判断条件
#	then 执行true 执行结果为1
#      fi结尾
# [] [[]] () (())
score=20
if [ $score  \= 100 ] 
then
	echo "100分"
elif [ $score -ge 60 ]
then
	echo "及格了"
else 
	echo "不及格"
fi

#!/bin/sh
#[]  括号和符号两边加空格
#[]  使用符号需要加\转义符
#[[]] 括号和符号两边加空格
# (弃用了) 
#(()) 真不能使用字母
# 只能使用符号 用变量时不需要加$
x=2
y=5
if	((5==5))
then
	echo "true"
else
	echo "false"
fi

for语句

#!/bin/sh
# for循环格式1(类似java格式):
# for ((初始化变量;判断条件;控制语句))
# do
#	循环体
# done
jsum=0
osum=0
for ((i=1;i<=100;i++))
do
	if ((i%2==0)) # 偶数
		then
			let osum+=i # 求合
			#osum=$[osum+i]
#			osum=`expr $osum + $i `
		else
			jsum+=$i #默认做拼接
			#jsum=$[jsum+i]
#			jsum=`expr $jsum + $i `
		
	fi
done
echo "偶数和为${osum}"
echo "奇数和为${jsum}"

# python格式:for 变量 in 集合
#	     do
#		循环体
#	     done
# 集合格式1:{1..100} 含头含尾
# 集合格式2:`seq 开头 结尾`
#for i in {1..100}
#do
#	if ((i%7==0))
#		then
#			echo $i
#	elif ((i/10==7 | i%10==7))
#		then
#			echo $i
#	fi
#done


#for i in `seq 1 100`
#do
#	echo $i
#done

s=1
e=100
for i in `seq $s $e`
do
	echo $i
done

#!/bin/sh
echo "请输入打印多少行99乘法表"
read sum
for i in `seq 1 $sum`
do
	for j in `seq 1 $i` 
	do
		echo -n "$j*$i=$[j*i]  "	
	done
	echo ""
done

read

#!/bin/sh
read x xx
read y yy
echo "录入的数据为:${x}"
echo "录入的数据为:${xx}"
echo "录入的数据为:${y}"
echo "录入的数据为:${yy}"

数组arr

#!/bin/sh
# 数组名称=(元素1 元素2...元素n)
arr=(1 2 3 4 5 6 7 8 9)
# 直接引用数组 输出结果为下标为0的元素
#$arr等同于${arr[0]}
#echo ${#arr[*]}
#sum=0
#for((i=0;i<${#arr[*]};i++))
#do
#	let sum+=arr[i]
#done
#echo $sum


sum=0
for i in ${arr[*]}
do
	let sum+=i
done
echo $sum

#!/bin/sh
arr=(1 2 3 4 5 6 7 8 9)
arr[0]=10
for i in ${arr[*]}
do
	echo $i
done

Fun函数

#!/bin/sh
function fun(){
	echo "hello"
}
# 调用 在方法定义之后
fun(){
	echo "helloworld"
}
fun
#!/bin/sh
# 为什么要使用函数
#求和
# 函数中使用位置变量$0永远是脚本名称
fun(){
	a=$0
	b=$1
	echo $a
	echo $b 
	#echo $[a+b]
}
fun  111 222 
echo $0
echo $1

#!/bin/sh
#return int; int(0-255)
fun(){
	x="helloworld"
	a=$10
	y=${10}
	echo $a $y 
	echo $*
	echo $#
	return 10;
}
#接收参数的格式为$? 接收当前方法最后的执行状态(0表示没问题 其他数据表示有问题)
#$?接收返回值只接受一次
fun 1 2 3 4 5 6 7 8 9 11 12 13 
echo $?
echo $?

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值