Shell的基础知识与使用方法 -----Day5

一.课前温习与回顾

1.在Linux操作系统中,查看系统磁盘空间的使用情况是用什么命令,该命令的什么参数是以可读性较高的方式来显示信息?

df:查看系统磁盘空间的使用情况
df-h:可读性较高的方式来显示信息

2. Linux系统中的用户名必须是唯一的,这句话对不对?

这句话是正确的,因为用户不能够重复。

二.Shell的基础知识与使用方法

1.Shell的基础知识

什么是Shell?

Shell 是一个用 C 语言编写的程序,它是用户使用 Linux 的桥梁。Shell 既是一种命令语言,又是一种程序设计语言。Shell 是指一种应用程序,这个应用程序提供了一个界面,用户通过这个界面访问操作系统内核的服务。Shell其实就是一个命令解释器

在Shell中编写时应该注意什么?

第一行应该为:

#!/bin/bash

编写好脚本之后,修改其权限为可写

chmod +x ./<脚本名>

执行脚本文件

./<脚本名>【注意,一定要写成 ./test.sh,而不是 test.sh】

2.Shell的用法[详细的请查看菜鸟教程Shell 教程]

(1)基本用法

  • 定义变量时,‘=’与变量之间不能有空格

a=yang

  • 用一个定义过的变量,只要在变量名前面加美元符号

b=$a【则b=yang】

  • 单引号与双引号

单引号里的任何字符都会原样输出,单引号字符串中的变量是无效的
双引号里可以有变量,可以出现转义字符

  • 注释

以 # 开头的行就是注释,会被解释器忽略。

  • 几个特殊字符用来处理参数

$#:传递到脚本的参数个数
$?:显示最后命令的退出状态

(2)基本运算符

  • 表达式和运算符之间要有空格,例如 2+2 是不对的,必须写成 2 + 2
  • expr 是一款表达式计算工具,使用它能完成表达式的求值操作
  • 乘号(*)前边必须加反斜杠()才能实现乘法运算
  • 关系运算符

-eq:判断是否相等;-gt:大于;-lt:小于

  • 布尔运算符

! :非运算
-a:与运算
-o:或运算
&&与||:必须[]

  • 文件测试运算符

-r file:检测文件是否可读
-e file:检测文件(包括目录)是否存在

(3)流程控制

  • if 语句语法格式: 注意中括号前后需要有空格
if [ 条件 ] 
then
   指令
fi
  • if else 语法格式:
if [ 条件 ] 
then
	指令1
else
	指令2
fi
  • for循环一般格式为:
for <变量名> in item1 item2 ... itemN
do
   指令1
done
  • while循环一般格式为:
while ((条件))
do
  指令1
done
  • 无限循环
while :
do
  指令
done

或者

while true
do
    指令
done

(4)函数

  • 函数的定义格式如下:
[ function ] funname [()]

{

   action;

   [return int;]

}
  • 注意:所有函数在使用前必须定义。这意味着必须将函数放在脚本开始部分,直至shell解释器首次发现它时,才可以使用。调用函数仅使用其函数名即可 。

三.编程练习

1.编写Shell脚本,判断用户家目录下(~)下有没有一个叫test_shell的文件夹,如果没有,提示按 Y创建并进入此文件夹,按N退出。如果有,直接进入,提示请输入一个字符串,并按此字符串创建一个文件,如果此文件已存在,提示重新输入,重复五次自动退出,不存在创建完毕退出。

  • 程序代码
#!/bin/bash
cd /home/yangjun/

if [ $# -ne 1 ]
then
	echo "Input error"
	exit
fi

if [ -e $1 ]
then
	cd $1
	echo "Please input a string:"
	time=1
	while(($time<=5))
	do
		
		read str1
		if [ -f $str1 ]
		then
			echo "Please input again:"
			let time++
		else
			touch $str1
			exit
		fi
	done
	exit
else
	echo "DO you want to creat it?(y/n)"
	read str2
	if [ $str2=='Y' -o  $str2=='y' ]
	then
		mkdir $1
	else
		exit
	fi
	
fi


  • 运行结果
    在这里插入图片描述
    在这里插入图片描述

2.猜数字游戏

#!/bin/bash
B=$RANDOM
#echo `expr $B % 101`
A=`expr $B % 101`
echo "Gane Start! You have 5 chances!"
for i in 1 2 3 4 5 6
do	
if [ $i -lt 6 ]
then
	echo "Please input number[0-100]"
	echo "You have `expr 6 - $i ` chance!"
	read num
	if [ $num -gt $A ]
	then
		echo "higher!"
	else 
		if [ $num -lt $A ]
		then
			echo "Lower!"
		else 
			if [ $num -eq $A  ]
			then
				echo "You win!"
				exit
			fi
		fi
	fi
else 
	if [ $i -gt 5 ]
	then
		echo "You have no chance! Game Over!"
		echo "The number is $A"
    fi
fi
done

  • 运行结果
  • 在这里插入图片描述在这里插入图片描述

四.课后总结

今天主要学习了Shell编程,熟悉了shell解释器和在Shell下的一写基本指令,对知识点有些还掌握的不好,会通过日后的联系中逐渐进步。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值