先利用脚本语言打印一个hello world 代码如下
#!/bin/bash
str= hello
val=100
mystr="hello world"
exit 0
注意:这里字符串如果中间使用空格那么要用双引号把字符串括起来
如果输出下图所示 则表示该脚本语言没有权限,它的权限需要修改
修改脚本权限的命令如下
chmod u+x my.sh
/bash为解释器
编程语言可以分为编译型和解释型
编译型: C语言 c++
解释型: 脚本
脚本语言为弱语言
1变量 本地变量 环境变量 参数变量
环境变量:shell进程的环境变量可以从当前shell进程传给fork出来的子进程。
本地变量:只存在于当前shell进程
写出如下脚本代码
read line
echo "$line=line"
echo"$PATH"
echo "pid=$$"
echo "num=$#"
echo "\$0=$0"
echo "\$1=$1"
echo "\$2=$2"
产生的结果为
因为没有3所以abc没打印出来
$$表示pid的号 $#表示有几个命令 $0 是脚本文件的名字
read是读取键盘打印的数据
2条件语句
先写一个判断一个数字是否等于123
echo "input"
read line
if test "$line" = 123
#if [ "$line" = "123" ]
then
echo " true"
else
echo "false"
fi
再写一个数字是否属于10到20
echo "input"
read line
if test "$line" = 123
#if [ "$line" = "123" ]
then
echo " true"
else
echo "false"
fi
在写一个根据数字评级的
if [ "$line" -ge 100 ]||[ "$line" -le 0 ]
then
exit 1
fi
if [ "$line" -ge 80 ]
then
echo "A"
elif [ "$line" -ge 60 ]
then
echo "B"
else [ "$line" -ge 40 ]
echo "C"
fi
现有如下代码
for i in hello abc
do
echo "i=$i"
done
输出结果为
如果给hello abc加上双引号那么输出hello abc
双引号是弱引用 单引号是强引用直接输出单引号里的东西
let"i+=1"等于i='expr$i+1'
写一个输入密码的代码
#!/bin/bash
i=0
while [ : ]
do
read line
if [ "$line" = "123" ]
then
echo "ok"
break
fi
i='expr $i+1'
if [ "$i" = "3" ]
then
echo "fail"
exit 0
fi
done
结果如下
脚本中有类似C语言中case的
用法
代码
echo "input:"
read line1
case $line1 in
[Yy][Ee][Ss]|[Yy])
echo "yes";;
no)echo "no";;
*) echo "***";;
esac
结果如下图