Shell教程-文件包含
【实验目的】
了解Linux系统Shell编程中的文件包含。
【实验原理】
Shell和其他语言一样,Shell 也可以包含外部脚本。这样可以很方便的封装一些公用的代码作为一个独立的文件。
Shell 文件包含的语法格式如下:
. filename # 注意点号(.)和文件名中间有一空格
或
source filename
【实验环境】
Linux Ubuntu 16.04
【实验内容】
编写shell脚本练习shell中文件包含。
【实验步骤】
1、创建两个shell 脚本文件:
vim test6.sh
脚本内容如下所示:
#!/bin/bash
echo "I love Linux"
vim 7.sh
脚本内容如下所示:
#!/bin/bash
. ./test6.sh
# or
# source ./test1.sh
2、执行结果:
bash test7.sh
3.Shell变量
命令 | 说明 |
$ echo `date` | 用echo输出当前日期时间,提示:使用date命令和反引号(反引号位于键盘左上角,ESC的下方。) |
$name="zhangsan" $echo '$name\"' $echo $name | 第二步的echo命令输出的是什么? 补充命令,输出真正的名字zhangsan。 |
$read a b c $let “sum=a=b+c” $echo $sum | 命令1:用read命令将输入值赋给a,b,c 命令2:用let命令使sum=a+b+c,注意不要忘了双引号 |
4.编程练习1
题目:编写一个脚本,求费波纳奇(Fibonacci)数列的前10项及总和。
首先创建一个文本:
$ cat exam11
脚本内容如下:
#!/bin/bash #说明本脚本是用bash编写的
a=1 #变量a存放奇数项的值,初值为1
b=1 #变量b存放偶数项的值,初值为1
echo –n –e "$a\t$b" #显示a和b的值,中间用制表符空开。光标不换行
let "n=a+b"
#变量n存放a与b之和
count=4 #变量count表示循环次数,初值为4。为什么?
while [ $count –gt 0 ] #当count值大于0时,则进入循环体
do #下面是循环体
let
"a=a+b" #计算前一项的值
let
"b=b+a" #计算后续项的值
echo –n –e
"\t$a\t$b" #显示刚计算出的这两项的值
let "n +=a+b" #计算总和
let "count=count-1" #循环次数减1
done #循环体结尾
echo #输出空行
echo "The sum is $n" #显示总和
运行脚本结果如下:
5.编程练习2
题目:打印给定行数的*号。第一行打印1个,第二行打印2个,等等。行数由用户在命令行上输入。
首先创建一个文本:
$ cat exam13
脚本内容如下所示:
#!/bin/bash
for ((i=1;i<=$1;i++))
do
for
((j=1;j<=i;j++))
do
echo –n "* "
done
echo ""
done
echo
"end! "
运行记得给参数!!!
6.编程练习3
题目:编程实现如下功能:输入一个账号信息,如系统中无此账号,则输出提示“该账号不存在”,否则输出提示“是否删除该账号Y|N”,如输入y或Y,则删除该账号,输入N或n则不删除,输入其他字符,则重复出现提示“是否删除该账号Y|N”。
源码:
echo "输入一个账号名"
read account
#进行判断,如果在passwd目录下存在这个账号名则证明存在
if [ `cat /etc/passwd
| grep -w $account` ]
then echo "是否删除该账号Y|N"
read determind #读取决定
if [ "$determind" =
"Y" -o "$determind" = "y" ] #进行删除
then `userdel -r $account` #连带目录和邮箱一起删除
#如果输入的不是n或者y则重新进行输入和判断
else #并重复提示是否删除Y|N
while [ "$determind"
!= "N" -a "$determind" != "n" ]
do
echo "是否删除该账号Y|N"
read determind
if [
"$determind" = "Y" -o "$determind" =
"y" ]
then ` userdel
- r $account`
break;
fi
done
fi
else
echo "该账号不存在";
fi
运行结果: