Linux——Shell脚本

2024-06-23 23:08
文章标签 linux shell 脚本

本文主要是介绍Linux——Shell脚本,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

重头戏终于来了!

一、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 releasePATH=/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 ReleasePATH=/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: " secondnutotal=$((${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 PATHecho -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中的变量是无法显示内容的。

这篇关于Linux——Shell脚本的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1088541

相关文章

Linux中SSH服务配置的全面指南

《Linux中SSH服务配置的全面指南》作为网络安全工程师,SSH(SecureShell)服务的安全配置是我们日常工作中不可忽视的重要环节,本文将从基础配置到高级安全加固,全面解析SSH服务的各项参... 目录概述基础配置详解端口与监听设置主机密钥配置认证机制强化禁用密码认证禁止root直接登录实现双因素

在Linux终端中统计非二进制文件行数的实现方法

《在Linux终端中统计非二进制文件行数的实现方法》在Linux系统中,有时需要统计非二进制文件(如CSV、TXT文件)的行数,而不希望手动打开文件进行查看,例如,在处理大型日志文件、数据文件时,了解... 目录在linux终端中统计非二进制文件的行数技术背景实现步骤1. 使用wc命令2. 使用grep命令

Linux如何快速检查服务器的硬件配置和性能指标

《Linux如何快速检查服务器的硬件配置和性能指标》在运维和开发工作中,我们经常需要快速检查Linux服务器的硬件配置和性能指标,本文将以CentOS为例,介绍如何通过命令行快速获取这些关键信息,... 目录引言一、查询CPU核心数编程(几C?)1. 使用 nproc(最简单)2. 使用 lscpu(详细信

利用Python脚本实现批量将图片转换为WebP格式

《利用Python脚本实现批量将图片转换为WebP格式》Python语言的简洁语法和库支持使其成为图像处理的理想选择,本文将介绍如何利用Python实现批量将图片转换为WebP格式的脚本,WebP作为... 目录简介1. python在图像处理中的应用2. WebP格式的原理和优势2.1 WebP格式与传统

linux重启命令有哪些? 7个实用的Linux系统重启命令汇总

《linux重启命令有哪些?7个实用的Linux系统重启命令汇总》Linux系统提供了多种重启命令,常用的包括shutdown-r、reboot、init6等,不同命令适用于不同场景,本文将详细... 在管理和维护 linux 服务器时,完成系统更新、故障排查或日常维护后,重启系统往往是必不可少的步骤。本文

shell中set -u、set -x、set -e的使用

《shell中set-u、set-x、set-e的使用》本文主要介绍了shell中set-u、set-x、set-e的使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参... 目录✅ 1. set -u:防止使用未定义变量 作用: 示例:❌ 报错示例输出:✅ 推荐使用场景:✅ 2. se

基于Linux的ffmpeg python的关键帧抽取

《基于Linux的ffmpegpython的关键帧抽取》本文主要介绍了基于Linux的ffmpegpython的关键帧抽取,实现以按帧或时间间隔抽取关键帧,文中通过示例代码介绍的非常详细,对大家的学... 目录1.FFmpeg的环境配置1) 创建一个虚拟环境envjavascript2) ffmpeg-py

Linux脚本(shell)的使用方式

《Linux脚本(shell)的使用方式》:本文主要介绍Linux脚本(shell)的使用方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录概述语法详解数学运算表达式Shell变量变量分类环境变量Shell内部变量自定义变量:定义、赋值自定义变量:引用、修改、删

Linux链表操作方式

《Linux链表操作方式》:本文主要介绍Linux链表操作方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、链表基础概念与内核链表优势二、内核链表结构与宏解析三、内核链表的优点四、用户态链表示例五、双向循环链表在内核中的实现优势六、典型应用场景七、调试技巧与

详解Linux中常见环境变量的特点与设置

《详解Linux中常见环境变量的特点与设置》环境变量是操作系统和用户设置的一些动态键值对,为运行的程序提供配置信息,理解环境变量对于系统管理、软件开发都很重要,下面小编就为大家详细介绍一下吧... 目录前言一、环境变量的概念二、常见的环境变量三、环境变量特点及其相关指令3.1 环境变量的全局性3.2、环境变