我的编程空间,编程开发者的网络收藏夹
学习永远不晚

linux中Shell Script有什么用

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

linux中Shell Script有什么用

这篇文章给大家分享的是有关linux中Shell Script有什么用的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。

1 Shell Scipt
使用指令和基本程序设计结构写成的程序,可以完成复杂的处理流程

1 程序书写

代码如下:


#!/bin/bash
# Program:
#       This program shows "Hello Wrold" in your screen.
# History:
# 2013/2/3 on_1y First release
PATH=$PATH
export PATH
echo -e "Hello World!\a\n"
exit 0

第一行 #!/bin/bash 说明使用的shell类型,不同shell语法可能不同,所以要说明使用的是哪种shell
其它#开始的表示注释,注释一般需要说明
程序功能
版本历史
作者及联系方式
设置好PATH变量,以便直接可以调用相应路径下的命令
程序主体部分
exit 0 表示程序执行成功,向环境返回0
1.2 程序执行
bash $bash sh01.sh #如果用sh sh01.sh而sh又不是指向bash,那么sh01.sh内的语法就会不一致,因为用 #sh去解释了bash语法写的shell script,针对这个程序,如果 #$type sh #得到sh is hashed (/bin/sh) #那么会输出-e Hello world!,而非Hello world!

代码如下:


$./xxx.sh $chmod +x sh01.sh $./sh01.sh
source $ source sh01.sh

注:用bash和用source的不同在于,用bash执行时,shell script其实是在在父程序bash下新建了一个 bash子程序,这个子程序中执行,当程序执行完后,shell script里定义的变量都会随子程序的结束而消失, 而用source执行时,是在父程序bash中执行,shell script里定义的变量都还在。

2 简单Shell练习

1 例1 接收用户输入

代码如下:


# !/bin/bash
# Program:
#       This program is used to read user's input
# Site: www.yisu.com
# 2013/2/3 on_1y First release
PATH=$PATH
export PATH
read -p "Your first name:" firstname # tell user to input
read -p "Your last name:" lastname # tell user to input
echo -e "\nYour full name: $firstname $lastname"
exit 0

调用:

代码如下:


$ bash sh02.sh
Your first name:Minix
Your last name:007
Your full name: Minix 007

2 例2 按日期建立相似名字的文件

代码如下:


# !/bin/bash
# Program:
#       This program is used to create files according to date
# History:
# 2013/2/3 on_1y First release
PATH=$PATH
export PATH
# Get filename from user
echo -e "I will use 'touch' to create three files."
read -p "Please input your filename:" tmpfilename
# Prevent the user input [Enter]
# Check whether filename exists or not
filename=${tmpfilename:-"filename"}
# Get the final filename according to date
date1=$(date --date='2 days ago' +%Y%m%d) # date of 2 days ago
date2=$(date --date='1 days ago' +%Y%m%d) # date of yesterday
date3=$(date +%Y%m%d) # date of today
filename1=${filename}${date1}
filename2=${filename}${date2}
filename3=${filename}${date3}
# Create file
touch "$filename1"
touch "$filename2"
touch "$filename3"
exit 0

调用:

代码如下:


$ bash sh03.sh
I will use 'touch' to create three files.
Please input your filename:WhoKnows
$ ls W*
WhoKnows20130201  WhoKnows20130202  WhoKnows20130203

3 判断式
3.1 测试文件是否存在
test -e filename会根据filename是否存在返回0或1,再交由echo显示结果:

代码如下:


$ test -e sh01.sh  && echo "Exists" || echo "Not exists"
Exists
$ test -e sh0x.sh  && echo "Exists" || echo "Not exists"
Not exists

2 test常用选项
3.2.1 文件类型

代码如下:


-e file :file是否存在
-f file :file是否存在且为文件
-d file :file是否存在且为目录

2.2 权限
-r file :file是否有读的权限

2.3 文件新旧比较
-nt file1 file2 : file1 是否比 file2新

2.4 整数,字符串,多重条件判断
-z string: string是否为空
例:输出指定文件类型及属性

代码如下:


# !/bin/bash
# Program:
#       This program is used to output type and permission of the target file
# History:
# 2013/2/3 on_1y First release
PATH=$PATH
export PATH
# Get filename from user
echo -e "Input name of the file that you want to check.\n"
read -p "Filename:" filename
test -z $filename && echo "You must input a filename." && exit 0
# Check whether the file exists or not
test ! -e $filename && echo "The file '$filename' DO NOT exists" && exit 0
# Check type and permission of the file
test -f $filename && filetype="regular file"
test -d $filename && filetype="directory"
test -r $filename && perm="readable"
test -w $filename && perm="$perm writable"
test -x $filename && perm="$perm executable"
# Output result
echo "The filename:$filename is a $filetype"
echo "And Permissions are :$perm"
exit 0

调用:

代码如下:


$ bash sh04.sh
Input name of the file that you want to check.

Filename:sh01.sh
The filename:sh01.sh is a regular file
And Permissions are :readable writable executable

3 使用[]判断

测试文件是否存在

代码如下:


$ [ -e "sh01.sh" ] ; echo $?
0
$ [ -e "sh0x.sh" ] ; echo $?
1

注意[]内空格必须有
这种方法和test的test -e "sho1.sh" ; echo $? 是一致的

4 Shell Script 参数

代码如下:


# !/bin/bash
# Program:
#       This program is used to ouput parameter of the shell script
# History:
# 2013/2/3 on_1y First release
PATH=$PATH
export PATH
echo "The script's name is ==> $0"
echo "Total parameter number is ==> $#"
# Check whether number of the parameter is less than 2
[ "$#" -lt 2 ] && echo "The number of parameter is less than 2.Stop here." && exit 0
echo "The whole parameter is ==> '$@'"
echo "The first parameter is ==> $1"
echo "The first parameter is ==> $2"
exit 0

调用:

代码如下:


$ bash sh05.sh 1a 2b 3c 4d
The script's name is ==> sh05.sh
Total parameter number is ==> 4
The whole parameter is ==> '1a 2b 3c 4d'
The first parameter is ==> 1a
The first parameter is ==> 2b

注:从以上程序可以看出与参数有关的预设变量如何表示

5 条件表达式

1 if 结构

代码如下:


# !/bin/bash
# Program:
#       This program is used to show if else expression
# History:
# 2013/2/3 on_1y First release
PATH=$PATH
export PATH
read -p "Please input [Y/N]" choice
if [ "$choice" == "Y" ] || [ "$choice" == "y" ];then
    echo "OK, continue"
    exit 0
fi
if [ "$choice" == "N" ] || [ "$choice" == "n" ];then
    echo "Oh, interupt"
    exit 0
fi
exit 0

调用:

代码如下:


$ bash sh06.sh
Please input [Y/N]y
OK, continue
$ bash sh06.sh
Please input [Y/N]n
Oh, interupt

2 if else 结构

代码如下:


# !/bin/bash
# Program:
#       This program is used to show if else expression
# History:
# 2013/2/3 on_1y First release
PATH=$PATH
export PATH
read -p "Please input [Y/N]" choice
if [ "$choice" == "Y" ] || [ "$choice" == "y" ];then
    echo "OK, continue"
    exit 0
elif [ "$choice" == "N" ] || [ "$choice" == "n" ];then
    echo "Oh, interupt"
    exit 0
else
    echo "Input [Y/N]"
fi
exit 0

3 case

代码如下:


# !/bin/bash
# Program:
#       This program is used to show case expression
# History:
# 2013/2/3 on_1y First release
PATH=$PATH
export PATH
read -p "Tell me your choice:[1-3]=>" choice
case $choice in
    "1")
        echo "Your choice is ONE"

    "2")
        echo "Your choice is TWO"

    "3")
        echo "Your choice is THREE"

esac
exit 0

调用:

代码如下:


$ bash sh08.sh
Tell me your choice:[1-3]=>2
Your choice is TWO
$ bash sh08.sh
Tell me your choice:[1-3]=>1
Your choice is ONE
$ bash sh08.sh
Tell me your choice:[1-3]=>3
Your choice is THREE

6 函数

代码如下:


# !/bin/bash
# Program:
#       This program is used to test function
# History:
# 2013/2/3 on_1y First release
PATH=$PATH
export PATH
function myprint(){
    echo -n "Your choice is "
}
read -p "Tell me your choice:[1-3]=>" choice
case $choice in
    "1")
        myprint;echo "ONE"

    "2")
        myprint;echo "TWO"

    "3")
        myprint;echo "THREE"

esac
exit 0

调用:

代码如下:


$ bash sh09.sh
Tell me your choice:[1-3]=>1
Your choice is ONE
$ bash sh09.sh
Tell me your choice:[1-3]=>2
Your choice is TWO
$ bash sh09.sh
Tell me your choice:[1-3]=>3
Your choice is THREE

7 循环
7.1 while

代码如下:


# !/bin/bash
# Program:
#       This program shows while expression
# History:
# 2013/2/3 on_1y First release
PATH=$PATH
export PATH
while [ "$choice" != "yes" ]
do
    read -p "Give your choice [yes/no]:" choice
done
exit 0

调用:

代码如下:


$ bash sh20.sh
Give your choice [yes/no]:no
Give your choice [yes/no]:no
Give your choice [yes/no]:nx
Give your choice [yes/no]:yes

2 for

代码如下:


# !/bin/bash
# Program:
#       This program is used to demo for expression
# History:
# 2013/2/3 on_1y First release
PATH=$PATH
export PATH
for choice in 1 2 3
do
    echo "your choice is $choice"
done
exit 0

调用示例:

代码如下:


$ bash sh21.sh
your choice is 1
your choice is 2
your choice is 3

8 shell script的追踪与Debug
sh -n xx.sh # 语法检查
sh -x xx.sh # 列出xx.sh的执行过程

感谢各位的阅读!关于“linux中Shell Script有什么用”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

linux中Shell Script有什么用

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

linux中Shell Script有什么用

这篇文章给大家分享的是有关linux中Shell Script有什么用的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。1 Shell Scipt使用指令和基本程序设计结构写成的程序,可以完成复杂的处理流程1.1 程
2023-06-09

linux中shell script是什么

这篇文章主要为大家展示了“linux中shell script是什么”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“linux中shell script是什么”这篇文章吧。其实,shell scr
2023-06-13

Linux中script命令有什么用

这篇文章将为大家详细讲解有关Linux中script命令有什么用,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。Linux常用命令script 用于在终端会话中,记录用户的所有操作和命令的输出信息。scri
2023-06-28

linux中shell有什么作用

Shell是一种命令行解释器,它是Linux操作系统中用户与系统内核交互的界面。它具有以下作用:1. 执行命令:通过Shell,用户可以输入各种命令来执行各种任务,例如创建、删除、移动文件和目录,运行程序,设置环境变量等。2. 脚本编程:S
2023-08-30

Linux Shell中()、(())、[]、[[]]、{}的有什么作用

这篇文章主要介绍“Linux Shell中()、(())、[]、[[]]、{}的有什么作用”,在日常操作中,相信很多人在Linux Shell中()、(())、[]、[[]]、{}的有什么作用问题上存在疑惑,小编查阅了各式资料,整理出简单好
2023-06-15

Linux系统中script是什么

这篇文章主要介绍了Linux系统中script是什么,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。script是什么scirpt就是一个命令,可以制作一份记录输出到终端的记录
2023-06-28

Linux中script命令怎么用

这篇文章主要介绍了Linux中script命令怎么用,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。script是什么scirpt就是一个命令,可以制作一份记录输出到终端的记录
2023-06-16

Shell中Sampler有什么用

这篇文章主要介绍Shell中Sampler有什么用,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!Sampler是一个用于shell命令执行,可视化和告警的工具。其配置使用的是一个简单的YAML文件。为什么我需要它?你
2023-06-15

script 命令怎么在Linux中使用

script 命令怎么在Linux中使用?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。1、script命令描述script命令会记录所有的操作到文件同时在屏幕上输出,直到终
2023-06-13

python中script的用法是什么

Python中的脚本(script)是一个包含一系列Python代码的文件,通常被用来执行一系列特定的任务或操作。脚本可以包含变量、函数、控制流语句等,用来完成各种任务,例如数据处理、文件操作、网络通信等。Python脚本可以通过命令行或
python中script的用法是什么
2024-03-11

linux中shell的作用是什么

这篇文章主要介绍“linux中shell的作用是什么”,在日常操作中,相信很多人在linux中shell的作用是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”linux中shell的作用是什么”的疑惑有所
2023-06-30

Linux中如何使用script命令

这篇文章将为大家详细讲解有关Linux中如何使用script命令,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。如何使用 script 命令?默认情况下,直接输入 script 这个命令即可,它会在当前目录
2023-06-15

Shell中grep命令有什么用

这篇文章给大家分享的是有关Shell中grep命令有什么用的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。用‘grep搜索文本文件如果您要在几个文本文件中查找一字符串,可以使用‘grep命令。‘grep在文本中搜索
2023-06-09

shell中的/dev/null有什么用

这篇文章主要讲解了“shell中的/dev/null有什么用”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“shell中的/dev/null有什么用”吧!把/dev/null看作”黑洞”. 它
2023-06-28

Linux中的script命令如何使用

这篇文章主要介绍了Linux中的script命令如何使用,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。Linux script命令script 是一个神奇命令,script
2023-06-28

Linux系统script命令怎么用

这篇文章主要介绍Linux系统script命令怎么用,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!script 是一个神奇命令,script 能够将终端的会话过程录制下来,然后使用 scriptreplay 就可以将
2023-06-28

编程热搜

目录