bash编程:Shell练习题

bash编程:练习题

1. 写一个脚本:如果某路径不存在,则将其创建为目录;否则显示其存在,并显示内容类型

#!/bin/bash
#
baseurl=/var/tmp/testdir
if [ -e $baseurl ]; then
echo "file is no exists."
else
mkdir -p $baseurl
file $baseurl
fi

2. 写一个脚本,完成如下功能;判断给定的两个数值,孰大孰小;给定数值的方法:脚本参数,命令交互

#!/bin/bash
#
if [ $# -lt 1 ]; then
echo "Plz enter two digit"
exit 1
fi
if [ $1 -gt $2 ]; then
echo "MAX;$1 MIN:$2"
else
echo "MAX:$2 MIN:$1"
fi

3. 求100以内所有奇数之和(至少用3种方法)

(1) #!/bin/bash
#
declare -i sum=0
for i in $(seq 1 2 100); do
sum+=$i
done
echo " sum: $sum."
(2) #!/bin/bash
#
declare -i sum=0
for i in {1..100}; do
if [ $[$i%2] -eq 1 ]; then
sum=$(($sum+$i))
fi
done
echo "Sum: $sum"
(3) #!/bin/bash
#
declare -i sum=0
he () {
for i in $(seq 1 2 100); do
sum=$(($sum+$i))
done
}
he
echo " sum: $sum."

4. 写一个脚本实现如下功能:

(1) 传递两个文本文件路径给脚本;

(2) 显示两个文件中空白行数较多的文件及其空白行的个数;

(3) 显示两个文件中总行数较多的文件及其总行数;

#!/bin/bash
#
#if [ $# -lt 1 ]; then
# echo "Plz enter two Opt."
# exit 1
#fi
space1=$(grep "^$" /root/file |wc -l)
space2=$(grep "^$" /root/file1 |wc -l)
line1=$(cat /root/file |wc -l)
line2=$(cat /root/file1 |wc -l)
if [ $space1 -gt $space2 ]; then
echo "kongduode is /root/file: $space1 Lines"
else
echo "kongduode is /root/file1: $space2 Lines"
fi
if [ $line1 -gt $line2 ]; then
echo "zonghangduo is /root/file: $line1 Lines"
else
echo "zonghangduo is /root/file1: $line2 Lines"
fi

5. 写一个脚本

(1) 提示用户输入一个字符串;

(2) 判断:

如果输入的是quit,则退出脚本;

否则,则显示其输入的字符串内容;

#!/bin/bash
#
while true; do
read -p "Plz enter character :" -t 10 char
[ $char == "quit" ]&& break
echo "character is A : $char"
done

6. 写一个脚本,打印2^n表;n等于一个用户输入的值

#!/bin/bash
#
read -p "Plz enter a num :" -t 10 num
declare -i i=0
while [ $i -le $num ];do
let i++
echo -n -e "2^$i=$[2**$i]"
echo
done

7. 写一个脚本,写这么几个函数:函数1、实现给定的两个数值的之和;函数2、取给定两个数值的最大公约数;函数3、取给定两个数值的最小公倍数;关于函数的选定、两个数值的大小都将通过交互式输入来提供。备注:实在不懂公约数,公倍数,抄的邱野同学的作业

#!/bin/bash
#
if [[ $1 -eq "" ]];then
echo ‘plz input the first number‘
exit 1
fi
if [[ $2 -eq "" ]];then
echo ‘plz input the second number‘
exit 2
fi
function add() {
sum=$[$1+$2]
echo "the sum is $sum"
}
add $1 $2
declare -i max
declare -i min
if [[ $1 -gt $2 ]];then
max=$1
min=$2
elif [[ $1 -lt $2 ]];then
max=$2
min=$1
else
max=$1
min=$2
fi
function gong() {
r=$[$max%$min]
temp=$min
declare -i a
declare -i b
if [[ $r -eq 0 ]];then
echo "gongyue is $min"
echo "gongbei is $max"
else
while [[ $r -ne 0 ]];do
a=$2
b=$r
r=$[$a%$b]
done
gongyue=$b
gongbei=$[$1*$2/$b]
echo "gongyue is $gongyue"
echo "gongbei is $gongbei"
fi
}
gong $1 $2
时间: 2024-10-14 18:35:30

bash编程:Shell练习题的相关文章

[shell] Bash编程总结

由于工作需要,之前的几个月写了一些Bash脚本,主要完成自动测试.打包.安装包等.虽然相比C++编程,要简单.傻瓜,但其在类Unix系统中可以大大提高工作的效率.所以在此对脚本编程过程中一些注意事项进行简单的总结. 1. shell概述 shell是介于用户和类Unix操作系统内核(kernel)之间的一个接口,是为了保护内核不被用户误操作造成损害,在内核的周围建立一个外壳(shell). 用户通过向shell提出请求,shell解释并将请求传给内核.而多个shell请求可以写在一个文件中,便构

怎样用 Bash 编程:逻辑操作符和 shell 扩展

学习逻辑操作符和 shell 扩展,本文是三篇 Bash 编程系列的第二篇. Bash 是一种强大的编程语言,完美契合命令行和 shell 脚本.本系列(三篇文章,基于我的 三集 Linux 自学课程)讲解如何在 CLI 使用 Bash 编程. 第一篇文章 讲解了 Bash 的一些简单命令行操作,包括如何使用变量和控制操作符.第二篇文章探讨文件.字符串.数字等类型和各种各样在执行流中提供控制逻辑的的逻辑运算符,还有 Bash 中的各类 shell 扩展.本系列第三篇也是最后一篇文章,将会探索能重

bash编程快速入门

首先,我们简单的介绍一下bash,bash是GNU计划编写的Unixshell,它是许多Linux平台上的内定shell,它提供了用户与系统的很好的交互,对于系统运维人员,bash的地位是举足轻重的,bash编程能很快处理日常的任务 bash入门,一个最简单的bash例子 #vim hello.sh #!/bin/bash #This is the first example of the bash #echo "Hello world" 下面,我们就这个简单的bash 脚本来介绍一下

Linux系统Bash(Shell)基础知识(4)

今天给大家总结一下关于bash的颜色,配置文件,变量,数组和相关shell脚本编程的基本概念: 一.bash的颜色显示规则 吧是的颜色显示,说白了就是Ascll码对于颜色的调用设置,而在于颜色代码当中,字符串个功能实现如下: \033:表示ctrl键: [:控制字符和颜色代码之间的间隔字符: 0m:关闭颜色属性: 1m:加粗显示文本字符: 4m:为文本字符加下划线标识: 5m:使文本字符闪烁: 7m:将背景色和前景色调换,白变黑,黑变白: 8m:隐藏字符,将文本字符的背景色和前景色设置为相同颜色

Linux bash编程入门

一.bash编程入门 编程语言: 编译型语言:编译器  c,c++ 解释型语言:解释器 解释器可独立运行 变量:保持数据的载体,命令的内存空间 本地变量: 环境变量 局部变量: 位置参数变量:$1,$2..., 特殊变量: $0 当前脚本的名字 shell脚本:shebang #!/bin/bash         #解释此脚本的shell路径,内核调用对应的解释器来解释脚本 #Description: #Version: #Author: #License: #Datetime: 脚本文件,其

bash编程初体验之for

bash编程初体验之for for while until 概述 本文将介绍以for为代表的循环语句在shell 脚本中的应用,常见的循环语句有for, while, until,作为循环语句,顾名思义,它就是重复地做一件事,直到满足某一条件而退出:另外,还有两个循环控制语句continue与break来配合循环语句,以实现临时中断或跳出循环的功能:以下为for, while, until的知识点提炼: for, while, until 进入条件          for: 列表元素非空   

bash 编程 sed

sed编辑器                 流编辑器 可以基于输入到命令行的或是存储在命令文件中的命令来处理数据流中的数据,它每次从输入中读取一行,用提供的编辑命令匹配数据,按命令中指定的方式修改流中的数据,然后将生成的数据输出到STDOUT.默认所有来着STDIN的数据,都会输出的屏幕上,-n 选项 只要经常sed处理的哪一行才会输出到STDOUT上. 命令格式 sed option script file 选项 -e script  执行多个命令 -f file        执行文件中的

bash编程初体验(二)

bash编程初体验(二) read if case 概述 在本篇文章中,我们将介绍bash编程中有关if语句的简单用法,.如此,如果条件为真,if会执行一种指令,如果条件为假,if会选择执行另一种指令,这种执行就是所谓的选择结构,它能够改变命令的基本顺序流结构,以选择流的形式运行. 在有关if语句的论述中,我们还将介绍read命令,因为read命令可以方便地引入一个或多个变量,可以天然地与if语句结合:另外,除了if语句,还有一种常见的选择语句:case语句,其简单易用,高效简洁,是时的不二选择

linux下的bash编程简要学习

linux下的bash编程简要学习     1.bash是什么: linux运行时系统只会运行系统运行所需要的运行脚本即系统守护进程,一般根据用户自己需求设定和实现的服务需要手动启动,这种服务进程通常由bash启动,脚本中的命令通常被按照一定规则被bash读取视作参数,因此在脚本头部要申明运行的bash类型,bash命令分为内建命令及外部命令,外部命令通过PATH进行依次查找. bash读取命令后将其启动(fork)成为一个进程,依次启动服务     2.bash控制语句:         本地