首页 > 其他分享 >操作系统 实验18 批处理操作接口8:函数

操作系统 实验18 批处理操作接口8:函数

时间:2024-05-27 21:33:39浏览次数:33  
标签:bin do 操作系统 批处理 18 echo sh done bash

1、建立文件func2.sh,输出文件内容各行及行数

脚本:

#!/bin/bash
echo -n "请输入一个文件名及路径:"
read FILE
statisfile(){
	local i=0
	while read line
	do 
		let i++
		echo "$i  $line"
	done < $FILE
	echo "$FILE有$i行"
}
echo "调用shell函数statisfile()"
statisfile

命令:. ./func2.sh

结果:

2、建立文件func3.sh,判断文件是否存在

脚本:

#!/bin/bash
echo -n "请输入一个文件名及路径:"
read FILE
checkfileexist(){
	if [ -f $FILE ];then
		return 0
	else
		return 1
	fi
}
echo "调用shell函数checkfileexist()"
checkfileexist
if [ $? -eq 0 ];then
	echo "$FILE存在"
else
	echo "$FILE不存在"
fi

命令:. ./func3.sh

结果:

3、建立文件func5.sh,计算阶乘

脚本:

#!/bin/bash
power(){
	p=1
	i=0
	while [ "$i" -lt $2 ]
	do
		let "p=p*$1"
		let "i=i+1"
	done
	echo "$1 ^ $2 = $p"
}
power $1 $2

命令:. ./func5.sh 2 3

结果:

4、指定位置参数值

脚本:

#!/bin/bash
echo "重新设置位置参数值前各位置参数的值:"
cnt=1
for i in $@
do
	echo "\$$cnt=$i"
	let "cnt++"
done
set 1 2 Linux Windows
echo "重新设置位置参数值后各位置参数的值:"
cnt=1
for i in $@
do
	echo "\$$cnt=$i"
	let "cnt++"
done

命令:. ./set1.sh a b c d 1 2

结果:

5、给出下列脚本执行结果

脚本:

#!/bin/bash
until [ $# -eq 0 ]
do
	echo "\$1=$1,参数总数=$#"
	shift
done

命令:. ./shift1.sh 1 2 s1 s2

结果:

6、给出下列脚本执行结果

脚本:

#!/bin/bash
until [ $# -le 1 ]
do
	echo "\$1=$1,参数总数=$#"
	shift 2
done

命令:. ./shift2.sh 1 2 s1 s2

结果:

7、给出下列脚本执行结果

脚本:

#!/bin/bash
Total=0
expstr=""
until [ $# -eq 0 ]
do
	let "Total=Total+$1"
	if [ "$expstr" = "" ];then
		expstr=$1
	else
		expstr=$expstr"+$1"
	fi
	shift
done
echo $expstr"="$Total

命令:. ./shift3.sh 3 4 5 6

结果:

8、建立递归函数文件recur1.sh求阶乘

脚本:

#!/bin/bash
fac(){
	local n=$1
	if [[ $n -le 0 ]];then
		f=1
	else
		fac $((n-1))
		t=$f
		n=$n
		f=$((n*t))
	fi
}
fac $1
echo "$1!=$f"

命令:. ./recur1.sh 4

结果:

标签:bin,do,操作系统,批处理,18,echo,sh,done,bash
From: https://blog.csdn.net/m0_63093530/article/details/139248190

相关文章

  • Weblogic T3协议反序列化漏洞[CVE-2018-2628]
    漏洞复现环境搭建请参考http://t.csdnimg.cn/TYtKgkali切换jdk版本请参考Kali安装JAVA8和切换JDK版本的详细过程_kali安装jdk8-CSDN博客漏洞原理T3协议实现Weblogicserver和其他java程序间的数据传输,Weblogic开放7001端口则默认开启T3服务,通过构造恶意的T3协议数据,利用......
  • 搜索引擎ElasticSearch18_Spring Data ElasticSearch 使用6
    一、SpringDataElasticSearch简介1、什么是SpringDataSpringData是一个用于简化数据库访问,并支持云服务的开源框架。其主要目标是使得对数据的访问变得方便快捷,并支持map-reduce框架和云计算数据服务。SpringData可以极大的简化JPA的写法,可以在几乎不用写实现的情况......
  • springboot2.7.18配置跨域
    一.springboot整合security后一般要配置security的跨域和mvc的跨域才能实现跨域1.spring-security配置跨域@BeanpublicSecurityFilterChainfilterChain(HttpSecurityhttp)throwsException{http.csrf().disable().cors();returnhttp.build();......
  • 【安装】VMware虚拟机安装windows操作系统,VM的相关操作
    目录引出报错:pressanykeytobootformcd激活调整显示在VMware上新建虚拟机,并安装Windows1、新建虚拟机2、装载ISO镜像3、安装Windowsserver20164、开机初始化虚拟机操作1、虚拟机基本操作2、虚拟机快照3、虚拟机克隆4、VMwareTools总结引出VMware虚拟......
  • 操作系统实验二 短作业优先进程调度算法
    实验二短作业优先进程调度算法实验内容编写程序,模拟实现短作业优先进程调度算法。从测试文件读入进程相关信息,然后给出不同进程调度算法下,进程的运行次序情况。测试数据文件格式:测试数据文件包括n行测试数据,分别描述n个进程的相关信息。每行测试数据包括四个字段,各个字......
  • 搜索引擎ElasticSearch18_ElasticSearch编程操作5
    一、创建工程,导入坐标pom.xml坐标<dependencies><dependency><groupId>org.elasticsearch</groupId><artifactId>elasticsearch</artifactId><version>5.6.8</version></dependency>......
  • 国产操作系统上telnet命令详解 _ 统信 _ 麒麟 _ 中科方德
    原文链接:国产操作系统上telnet命令详解|统信|麒麟|中科方德Hello,大家好啊!今天给大家带来一篇在国产操作系统上使用telnet命令的详细介绍文章。telnet是一个经典的网络协议和工具,广泛用于测试和管理远程服务器。本文将详细介绍如何在统信UOS、麒麟KOS、中科方德等国产......
  • 嵌入式实时操作系统笔记3:FreeRTOS移植(STM32F407)_编写简单的FreeRTOS任务例程
    上文讲到UC/OSIII系统的移植,那篇文章是失败了的,网络上的资料真是层次不清,多有遗漏步骤,导致单片机连操作系统的初始化都卡在那,这次换个赛道,学FreeRTOS吧......今日任务如标题所示:FreeRTOS移植(STM32F407)_编写简单的FreeRTOS任务例程文章提供测试代码讲解、完整工程下载、测......
  • UNiX强大的操作系统和编程环境
    Android设计模式一:EIT造型什么是EIT 造型?EIT造型,一种比类的范围更大,比模式(Pattern)稍微小的一种新的代码造型。造型的模型EIT造形是一种基本的结构(Structure),一种概念(Concept);我们称它为”EIT造形(Form)”。参考:https://www.cnblogs.com/myEIT/articles/3294583.html......
  • 操作系统学习
     Ubuntu(乌班图)、RedHat(红帽)、CentOS、Debain[蝶变]、Fedora、SuSE、OpenSUSE3、Linux和Windows区别 4、Linux和Unix关系UNIX是Linux的父亲"这个说法更怡当。之所以要介绍它们的关系,是因为要告诉读者,在学习的时候,其实Linux与UNIX有很多的共通之处,简单地说,如果你......