shell编程

  • 编译型语言:C、C++、Go 等必须先通过编译生成可执行程序 .exe 之后可以在主机上直接运行。运行效率很高。

  • 解释型语言:Python等,运行时需要解释器。开发效率高,但是运行效率低。

代码示例:

my.sh 后缀名可加可不加

#!/usr/bin/bash #指定解释器

echo "hello" #输出命令 shell都是通过一些命令去做具体的事,所以开发效率较高
exit 0

1、运行时需要 bash my.sh 可执行程序是bash , my.sh 只是作为参数传给bash。

2、也可以修改my.sh 的权限之后去运行它:

chomd u+x my.sh 之后 ./my.sh 因为具有了执行权限。但其实还是先运行bash 解释器之后然后依旧是作为参数传递给bash 去执行,因为计算机只能执行二进制可执行程序。

变量:

本地变量:

用户自己定义的

#!/usr/bin/bash

str="hello world" #等号两边不能有空格
val=100

echo "str=$str" #必须是双引号
echo "val=$val"
# echo 'val=$val' #单引号是直接打印这一串字符

exit(0)

1、等号左右不能有空格。

2、因为hello world 之间有空格所以必须加双引号。

3、要获取变量的值需要加$ 符号。

4、要想输出字符串常量就用单引号。

5、也可以给另一个变量赋值:

#!/usr/bin/bash
a=$val
echo a=$a

6、从键盘获取值并打印:

#!/usr/bin/bash
echo "input"
read line #read 后的变量可以自己任意定义 
echo "read:$line"
exit 0

环境变量:

1、从父进程继承的变量,可以直接使用。

#!/usr/bin/bash

echo "\$0=$0"
echo "\s#=$#"
echo "\$$=$$"

2、$0 是当前脚本的名字,$# 是参数个数,$* 是获得所有参数,$$ 是当前脚本的 pid。(加\ 是表明不是输出双引号内的字符,而是说明要打印当前这个环境变量)

参数变量:

#!/usr/bin/bash
# 打印第1,2,3个参数,最大应该是9
echo "\$1=$1"
echo "\s2=$2"
echo "\$3=$3"

条件语句:

if [ ...... ]
then 
	#执行内容
fi #结束

1、从键盘输入123 判断是否相等:

echo "input"
read line
if test $line=123 #或者 if [ $line=123 ]
then 
	echo "=="
fi

2、-gt 大于 ,-lt小于(-ge 大于等于)

# 判断成绩是否合法
#!/usr/bin/bash
echo "input"
read line

if [ $line -gt 100 ] || [ $line -lt 0 ]
then
	echo "成绩不合法"
	exit 1
fi

3、-eq等于

#!/usr/bin/bash
echo "input"
read line
if [ "$line" -eq "123" ]
then
	echo "=="
else
	echo "!="
fi

4、判断文件类型

#!/usr/bin/bash
echo "input"
read name
if [ -d "$name" ]
then 
	echo "$name is dirent"
elif [ -f "$name" ]
then 
	echo "$name is file"
else
	echo "$name not exosts"
fi

循环:

for, while, until(不满足一直循环,直到满足条件退出)

for循环:

#!/usr/bin/bash

for i in 1 2 3 4
do
	echo "i=$i"
	sleep 1
done
vals="a b c"
for i in $vals
do
	echo "i=$i"
done
#另一种写法
val=`ls`
for i in &val
do 
	echo "i=$i"
done
#实现i+1操作
i=1
i=`expr $i + 1` #可以实现加减乘除
#let "i+=1"
echo "i=$i"

while循环:

i=0
sum=0
while [ "$i" -lt 10 ]
do 
	echo `expr $sum + $i` #反引号代表执行命令
	let "&i+=1"
done
echo "sum=$sum"

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值