Linux——Shell脚本

本文详细介绍了Linux Shell脚本的各个方面,从基础概念到实际应用,包括Shell脚本的功能、编写规范、简单练习、执行方式、条件判断、循环结构、参数处理以及调试技巧。通过实例讲解了如何编写和执行脚本,以及如何处理用户输入和文件操作,帮助读者掌握Shell脚本的编写和调试技能。
摘要由CSDN通过智能技术生成

重头戏终于来了!

一、Shell脚本简介

shell script 是利用 shell 的功能所写的一个『程序 (program)』,这个程序是使用纯文本文件,将一些 shell 的语法与指令(含外部指令)写在里面, 搭配正规表示法、管线命令与数据流重导向等功能,以达到我们所想要的处理目的。

#!/bin/bash 在宣告这个 script 使用的 shell 名称。

用vi test.sh创建一个shell脚本:

#!/bin/bash
echo "Hello World !"

执行方式:

 (1)bash test.sh

 (2)chmod a+x test.sh;./test.sh 



二、撰写 shell script 的良好习惯

在每个 script 的文件头处记录好:

  •  script 的功能;
  •  script 的版本信息;
  •  script 的作者与联络方式;
  •  script 的版权宣告方式;
  •  script 的 History (历史纪录);
  •  script 内较特殊的指令,使用『绝对路径』的方式来下达;
  •  script 运作时需要的环境变量预先宣告与设定。

三、简单的 shell script 练习

1、请你以 read 指令的用途,撰写一个 script ,他可以让使用者输入: 1. first name 与 2. last name, 最后并且在屏幕上显示:

『Your full name is: 』的内容。




2、随日期变化:利用 date 进行文件的建立

        假设我想要建立三个空的文件 (透过 touch) ,档名最开头由使用者输入决定,假设使用者输入 filename 好了,那今天的日期是 2015/07/16 , 我想要以前天、昨天、今天的日期来建立这些文件,亦即 filename_20150714, filename_20150715, filename_20150716 ,该如何是好?

#!/bin/bash
# Program:
#       Program creates three files, which named by user's input and date command.
# History:
# 2018/06/13    yue     First release

PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin
export PATH

# 1. 让使用者输入文件名,并取得 fileuser 这个变量;

echo -e "I will use 'touch' command to create 3 files."    # 纯粹显示信息
read -p "Please input your filename: " fileuser      # 提示使用者输入

# 2. 为了避免使用者随意按 Enter ,利用变量功能分析档名是否有设定?
filename=${fileuser:-"filename"}   # 开始判断有否配置文件名

# 3. 开始利用 date 指令来取得所需要的档名了:
date1=$(date --date='2 days ago' +%Y%m%d)  # 前两天的日期
date2=$(date --date='1 days ago' +%Y%m%d)  # 前一天的日期
date3=$(date +%Y%m%d)              # 今天的日期
file1=${filename}${date1}          # 底下三行在配置文件名
file2=${filename}${date2}
file3=${filename}${date3}

# 4. 将档名建立吧!  touch命令用于修改文件或者目录的时间属性,包括存取时间和更改时间。若文件不存在,系统会建立一个新的文件。
touch "${file1}"   # 底下三行在建立文件
touch "${file2}"
touch "${file3}"


3、数值运算:简单的加减乘除

用户输入两个变量, 然后将两个变量的内容相乘,最后输出相乘的结果。

#!/bin/bash
# Program:
#       User inputs 2 integer numbers; program will cross these two numbers.
# History:
#2018/06/13     yue     First Release

PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin
export PATH
echo -e "Your should inout 2 numbers.\n"
read -p "first number: " firstnu
read -p "second number: " secondnu

total=$((${firstnu}*${secondnu}))
echo -e "\nThe result is: ==>${total}"


4、数值运算:透过 bc 计算 pi

#!/bin/bash
# Program:
#       User input a scale number to calculate pi number.
# History:
#2018/06/13     yue     First release
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin
export PATH

echo -e "This program will calculate pi value.\n"
echo -e "You should input a float number to calculate pi value.\n"
read -p "The scale number (10~10000) ?" checking
num=${checking:-"10"}
echo -e "Starting calculate pi value."
time echo "scale=${num}; 4*a(1)" | bc -lq

        4*a(1) 是 bc 主动提供的一个计算 pi 的函数,至于 scale 就是要 bc 计算几个小数点下位数的意思。当 scale 的数值越大, 代表 pi 要被计算的越精确。


四、利用直接执行的方式来执行 script

不同的 script 执行方式会造成不一样的结果! 脚本的执行方式除了前面小节谈到的方式之外,还可以利用 source 或小数点 (.) 来执行。

1、利用直接执行的方式来执行 script——使用bash执行脚本时,echo script中的变量是无法显示内容的。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值