Shell编程基础入门:编写第一个Shell脚本

学校开了一门Linux课程,在此记录部分课程内容

(1)Shell基本知识

查看Shell版本: echo $SHELL
echo相当于C语言中的printf打印语句

在这里插入图片描述
read相当于C语言中的scanf输入语句
read name 代表从键盘键入的值传送给name变量
read -p允许直接输出
read -p “Enter your name:” name

创建Shell脚本:vim XX.sh

在这里插入图片描述
Shell脚本第一行需以 #!/bin/bash开头
在这里插入图片描述

赋予Shell脚本可执行权限:chmod +x xx.sh

还有其他选项 如chmod u+x xxx.sh u代表用户 x代表可执行 只授予这个文件的所属者执行的权限
在这里插入图片描述

运行Shell脚本:./xx.sh 或sh xx.sh

在这里插入图片描述

(2)输出内置变量

echo -n “Date and time is” date
echo -n  “Path is” $PATH
echo    “Name is `whoami`#注意这里不是'单引号 而是反引号`
echo -n “Current directory is” pwd 

在这里插入图片描述

(3)算术运算

#!/bin/bash
echo $[3+4]
echo $[3-4]
echo $[3*4]
echo $[3**4]
echo $[3/4]              

在这里插入图片描述

(4)脚本中使用变量

expr是表达式计算工具,可以完成表达式的求值操作
使用变量时 需在前面加上$

#!/bin/bash
a=3
b=4

echo "a=$a"
echo "b=$b"

val=`expr $a + $b`
echo "a + b : $val"

val=`expr $a - $b`
echo "a - b : $val"

val=`expr $a \* $b`
echo "a * b : $val"

val=`expr $b / $a`
echo "b / a : $val"

val=`expr $b % $a`
echo "b % a : $val"

val=[ $a == $b ]

在这里插入图片描述

(5)循环语句

for循环格式: for 变量 in 循环范围
do 循环体
done

#!/bin/bash
for loop in 1 2 3 4 5
do
    echo "The value is: $loop"
done


for i in {1..6}
do
   echo "it is $i"

done

在这里插入图片描述
在这里插入图片描述
while循环格式
while((循环条件))
do 循环体
done

#!/bin/bash
x=0
while((x<=5))
do
        echo "while loop :$x"
        let x++

done

在这里插入图片描述
在这里插入图片描述

(6)条件语句 以if开头 以fi结束

if [expression]; then
statements
elif [expression]; then
statements
else
statements
fi

#!/bin/bash
read -p "input your score: " score
echo $score
if [ $score -ge 90 ]
then echo "score is very good"
elif [ $score -ge 80 ]
then
        echo "score is good"
elif [ $score -ge 60 ]
then
        echo "it is ok"
else echo "you should work harder"
fi

在这里插入图片描述
在这里插入图片描述

(7)练习作业

1. 写一个脚本:如果某路径不存在,则将其创建为目录;否则显示其存在,并显示内容类型

#!/bin/bash
echo -n  "Please input a diriectory:"
read  dir
echo $dir
if [ ! -d $dir ];
then
echo "Directory not exist, Creating"
mkdir $dir
else
echo  "Exist"
ls $dir
fi

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
2. 写一个脚本,完成如下功能;判断给定的两个数值,孰大孰小;给定数值的方法:脚本参数,命令交互

#!/bin/bash
read -p "please input first number a:" a
read -p "please input second number b:" b
echo "a=$a"
echo "b=$b"
if [ $a -gt $b ]
then
        echo "a>b"
elif [ $a -lt $b ]
then
        echo "a<b"
else echo "a=b"
fi

在这里插入图片描述
在这里插入图片描述
3. 求100以内所有奇数之和(至少用3种方法)

第一种方法
#!/bin/bash
sum=0
i=1
while((i<=100))
do
let "sum+=i"
let "i=i+2"
done
echo "result=$sum"

在这里插入图片描述

在这里插入图片描述

第二种方法
#!/bin/bash
sum=0
for i in $( seq 1 2 100)
do
let "sum+=i"
done
echo "result=$sum"

在这里插入图片描述
在这里插入图片描述

第三种方法
#!/bin/bash
sum=0
for num in {1..100..2};
do
        let sum=$sum+$num;
done
        echo $sum

在这里插入图片描述
在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

几度热忱

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值