实验四(4) SHELL实验(笔记)
实验目的:
掌握SHELL编程的基本步骤和方法,了解SHELL中常用符号,函数,程序结构和输入输出的实现方法和使用要点。
实验内容:
SHELL中的输入输出,变量,函数,结构等多种实现
操作:
a)安装WINSCP
b)连接LINUX,在右边空白处点右键,新建文件,如下图:
c)(上述代码输入或者使用cat>t1,回车,然后敲入代码内容,并按CTRL+D退出。)
d)【root@localhost ~】#chmod +x t1
e)【root@localhost ~】#./t1
f)下同。
(一)基础训练
简单变量
程序代码:
#!/bin/bash
#filename:myprogram
x="hello world."
echo $x
y="my first shell program."
echo $y
exit
函数
程序代码:
#func is a function name
# it echos the values of variables and arguments
func( )
{ echo "Let's begin now. "
echo $a $b $c
echo $1 $2 $3
echo "The end. "
}
a=" Working directory "
b="is"
c=`pwd`
func Welcome You Byby
echo "Today is ` date ` "
关键字let的使用
程序代码:
#!/bin/bash
x=2006
let "x = $x + 1"
echo $x
x="a string."
echo $x
测试case语句
程序代码:
number=$1
case $number in
1)echo Mon;;
2)echo Tue;;
3)echo Wed;;
4)echo Thu;;
5)echo Fri;;
6)echo Sat;;
7)echo Sun;;
*)echo "wrong";;
esac
位置变量
程序代码:
set `pwd;ls /root/shtest/canshu;date`
echo $1 $2 $3 $9 ${10} ${11}
字符串比较
程序代码:
test 'long' = 'long';echo $?
test 'long' = 'short' ;echo $?
数字比较
程序代码:
x1="005"
test "$x1" = 5
echo $?
b="005"
test "$b" -eq 5
echo $?
循环语句for
程序代码:
for i in 1 2 3 4 5 6 7
do
echo $i
done
循环语句for
程序代码:
#!/bin/bash
for day in Sun Mon Tue Wed Thu Fri Sat
do
echo $day
done
循环语句for多文件内容显示
程序代码:
#!/bin/bash
# Filename : catmore
for i ; do
cat $i
done
循环语句for列出某文件夹文件名
程序代码:
#!/bin/bash
# Filename : listbin
for i in /bin/* ; do
echo $i
done
循环语句 while
程序代码:
i=1
while test "$i" -le 9
do
s=`expr $i \* $i \* $i `
echo "$i $s"
i=`expr $i + 1`
done
循环语句 while
程序代码:
while [ $1 ]
do
if [ -f $1 ]
then echo "显示文件 : $1 "
cat $1
else echo "$1 不是正确的文件名. "
fi
shift
done
循环语句until
程序代码:
i=1
until test "$i" -gt 9
do
s=`expr $i \* $i`
echo "$i $s"
i=`expr $i + 1`
done
数值和字符操作
求1+2+3+…+100的和
程序代码:
#!/bin/bash
SUM=0
I=0
while [ $I -le 100 ]
do
SUM=$((SUM+I))
I=$((I+1))
done
echo "由1+2+3+...+100的和是:$SUM"
数值和字符操作
完成一个程序,用户输入百分制的分数,之后返回“A”“B”“C”“D”“E”的等级。其中,A等级为90至100分,B等级为80至89分,C等级为70至79分,D等级为60至69分,E等级为0至59分。
程序代码:
needquit=0
while [ $needquit -eq 0 ]
do
echo "Please input the score"
read score
case $score in
100|9[0-9]) echo "Very Good";;
8[0-9]) echo "Good";;
7[0-9]) echo "Middle";;
6[0-9]) echo "Pass";;
[1-5][0-9]) echo "Failure";;
quit|q) echo "Quit"
needquit=1;;
*) echo "Wrong Input!";;
esac
echo ""
done
数值和字符操作
运行时显示下列格式的图形:
*
* *
* * *
* * * *
* * * * *
程序代码:
文件操作
把当前目录下文件扩展名为