Linux期末复习-Shell编程基础练习
Linux期末复习-Shell编程的基本练习,包含了多种基本的shell编程
Shell编程基础
以前文章链接
SHELL编程练习
文件的属性和权限
基本文件操作练习
高级文件操作练习
文件和目录管理
创建一个名字为shellfile1.sh的脚本文件
-
显示信息:This is my first shell sheipt
-
空一行
-
显示当前的日期和时间
-
显示当前的工作目录
-
显示当前系统的用户数目
#!/bin/bash
echo "This is my first shell file"
echo
date
pwd
cat /etc/passwd | wc -l
显示结果如下:
[tom@iZbp12r8eimkkdor4011j3Z ~]$ shellfile1.sh
This is my first shell file
Thu Dec 30 08:39:59 CST 2021
/home/tom
38
运行方式:
首先将文件设置为execute =>chmod u+x shellfile1.sh
-
直接使用bash(sh)运行可执行文件
sh shellfile1.sh
-
将shellfile1.sh变成可执行文件,将当前目录加入到用户的PATH变量中,通过文件名直接运行脚本程序
Chmod u+x shellfile.sh
PATH=$PATH:/home/tom #我当前目录是/home/tom
Shellfile.sh
创建一个名字为shellfile2的脚本文件,
使用set和cal命令给位置变量赋值,然后分别输出$0,$1… 9 这 10 个 位 置 变 量 以 及 9这10个位置变量以及 9这10个位置变量以及#,$*。
touch shellfile2.sh
set `date` #将set中的数据作为变量传递给脚本文件,以空格为分隔
echo $0 $1 $2 $3 $4 $5 $6 $7 $8 $9 $# $*
#$0 代表的是bash
显示结果
#首先看一下date是啥
[tom@iZbp12r8eimkkdor4011j3Z ~]$ date
Thu Dec 30 08:53:38 CST 2021
#开始显示
[tom@iZbp12r8eimkkdor4011j3Z ~]$ echo $0 $1 $2 $3 $4 $5 $6 $7 $8 $9 $# $*
-bash Thu Dec 30 08:53:13 CST 2021 6 Thu Dec 30 08:53:13 CST 2021
#$0 代表的是bash
#可以看到date一共有6个分隔,因此$1- $6占据了这6个变量
#$7-$9都是空的,显示为空
#$#代表有几个变量给到 => 6个
#$*将前面所有赋值的变量全部打印
我想我解释的够清楚了吧,哈哈
创建一个名为shellfile3的shell脚本文件,在执行脚本文件时,给定两个文件作为命令行参数,将这两个文件复制到/var/tmp目录下。(可以尝试多次运行脚本,每次给命令行参数赋不同的值,然后查看/var/tmp以验证执行结果。)
#!/bin/bash
cp $1 $2 /var/tmp
展示结果
#首先在/home/tom 下面创建两个文件hell1.txt hell2.txt
touch hell1.txt hell2.txt
[tom@iZbp12r8eimkkdor4011j3Z ~]$ sh shellfile3 hell1.txt hell2.txt
[tom@iZbp12r8eimkkdor4011j3Z ~]$ cd /var/tmp
[tom@iZbp12r8eimkkdor4011j3Z tmp]$ ls
aliyun-service.pid
cloud-init
hell1.txt
hell2.txt
创建一个名为shellfile4的shell脚本文件,用read命令读取键盘输入,将值存入变量abc中,如果读入的值为y的话,输出Yes,否则输出No。
read abc
if [ $abc = y ]
then
echo “Yes”
else
echo “No”
fi
echo "Please enter the number to check if is equal to y"
read abc
if [ "$abc" == y ]
then echo yes
else echo no
fi
编写脚本文件smallest,计算从键盘读入的三个整数的最小值
#!/bin/bash
echo "Please input three numbers :"
read n1 n2 n3
if test $n1 -le $n2 -a $n1 -le $n3
then
echo "The smallest number is :" $n1
elif test $n2 -le $n1 -a $n2 -le $n3
then
echo "The smallest number is :" $n2
else
echo "The smallest number is :" $n3
fi
方法二:
#!/bin/bash
read n1 n2 n3
if test $n1 -le $n2
then min=$n1
else min=$n2
fi
if test $min -le $n3
then echo “The smallest number is :$min.”
else echo “The smallest number is :$n3.”
fi
编写脚本文件SUM,对命令行传给它三个数字参数求和并显示结果。
用for循环,求和时候用let命令和expr两种方式
程序显示示例:10+20+30=60
#!/bin/bash
echo "Please input three numbers"
sum=0
for count in $1 $2 $3
do
sum=`expr $sum+$count`
#let sum=$sum+$count
#let sum=sum+count
done
echo $1+$2+$3=$sum
编写脚本文件Counter,递减显示数字20到10,使用while和until两种方式
count=20
while [ $count -gt 9 ] # while [ $count -ge 10 ]
# while test $count -gt 9
do
echo $count
count=`expr $count - 1` # let count=count-1
done
使用until循环
count=20
until [ $count -le 9 ]
#until test $count -le 9
do
echo $count
count=`expr $count - 1`
#let count=count-1
done
更多推荐
所有评论(0)