Shell脚本常见用法列举

这篇具有很好参考价值的文章主要介绍了Shell脚本常见用法列举。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

前言

最近在复习shell脚本的相关知识,本文列举了一些在shell脚本中用得到的一些基础语法。

1:打印常见内部变量和环境变量值

shell中常用变量介绍

$0 脚本名
$n 第n个参数,n=1,2,3...
$* 所有参数列表(视为一个整体,不包括脚本名)
$@ 所有参数列表(独立字符串、不包括脚本名)
$# 参数个数(不包含脚本名)
$$ 当前进程PID
$! 后台运行的最后一个进程PID
$? 执行上一个指令的返回值,如果为0,证明上一个命令正确执行
#1:打印一些变量
echo $#
echo $0
echo $1
echo $$
echo $?
echo $!
echo "hello world"
echo $HOME
echo $PWD

Shell脚本常见用法列举

 2:$@和$*之间的区别

#2:比较$@和$*
echo $@
echo $*
for var in "$@"
do 
	echo $var
done

for val in "$*"
do
	echo $val
done

Shell脚本常见用法列举

可以看到$@和$*不加“”括起来是没有区别的,当用“”括起来之后,$@会将参数独立看待,而$*会将全部参数视为一个整体。

3:自定义变量,将命令执行的结果返回给变量

在自定义一个变量的时候“=”两端不要加空格,可以将shell指令的返回值传给变量

#3:自定义变量,定义的时候不要加空格,将命令的结果返回给变量
A=100
echo "A = $A"
B=$(pwd)
echo $B

Shell脚本常见用法列举

4:运算符,实现加减乘除简单算数操作

将表达式用[]括起来后里面的语句和正常的加减乘除操作相同

#4:运算符,实现加减乘除操作
SARFF=$[1200+4]
echo $SARFF
echo $[$1*$2]

Shell脚本常见用法列举

5:if条件判断,字符串(=),数值比较(-lt -gt -le -ge -eq -ne),文件权限(-r -w -x ),文件、目录是否存在,是否为一个普通文件( -f -d -e)

shell脚本目录下的文件和目录

Shell脚本常见用法列举

注意if语句的中括号两端要有空格 ,否则会报错

#5:条件判断
if [ "ok100" = "ok" ]
then 
	echo "equal"
fi

if [ 30 -gt 20 ]
then
	echo "greater than"
fi

if [ -r $0 ]
then 
	echo "$0 can read"
fi

if [ -w $0 ]
then 
	echo "$0 can write"
fi

if [ -x $0 ]
then 
	echo "$0 can execute"
fi

if [ -e 1.txt ]
then 
	echo "1.txt exists"
fi

if [ -d dir ]
then 
	echo "dir exists"
fi

if [ -f 1.txt ]
then 
	echo "1.txt is a normal file"
fi

Shell脚本常见用法列举

6:流程控制

实现C语言中的if else 语句

#6:流程控制
if [ $1 -gt 60 ]
then 
	echo "$1 greater than 60"
elif [ $1 -le 60 ]
then
	echo "$1 little equal 60"
fi

Shell脚本常见用法列举

7:循环语句(for和while)

for循环和while循环都是实现1加到100的和

#7:for循环
SUM=0
for((i=1;i<=100;i++))
do
	SUM=$[$SUM+$i]
done
echo "SUM = $SUM"

#while循环
j=0
NUM=0
while [ $j -le 100 ]
do
	NUM=$[$NUM+$j]
	j=$[$j+1]
done
echo "NUM = $NUM"

 Shell脚本常见用法列举

8:从控制台输入数据,C语言中scanf函数功能

使用read来实现输入功能,-p后的内容是提示信息,-t可以限制输入参数的时间

#8:从控制台获取参数,实现scanf作用
read -t 5 -p "input a num" NUM2
echo "you input NUM2 = $NUM2"

在限制时间5s中之内输入数据 

Shell脚本常见用法列举

超过5s还未输入数据

Shell脚本常见用法列举

9:函数的简单使用

#9:自定义函数
function getAdd(){
 	SUM=$[$n1+$n2]
 	echo "SUM = $SUM"
}

read -p "input first num" n1
read -p "input second num" n2

getAdd $n1 $n2

定义函数要用function关键字,函数功能是实现求两数的和

Shell脚本常见用法列举

10:逻辑与、或、非

//逻辑与
if [ 30 -gt 20 ] && [ 10 -eq 20 ]
then
    echo "true"
else
    echo "false"
fi

//逻辑或
if [ 30 -gt 20 ] || [ 10 -eq 20 ]
then
    echo "true"
else
    echo "false"
fi

//逻辑非
if ! [ -r temp.txt ]
then
    echo "true"
else
    echo "false"
fi

Shell脚本常见用法列举

 

总结

本文只涉及了shell脚本的一小部分内容,目的是为了能够使用shell脚本实现一些简单的功能。文章来源地址https://www.toymoban.com/news/detail-451514.html

到了这里,关于Shell脚本常见用法列举的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Java面试题:解释Java的基本数据类型及其大小和默认值,列举数据类型常见的错误知识点

    Java的基本数据类型是Java编程语言中用于存储简单值的类型。这些数据类型包括整数类型、浮点类型、字符类型和布尔类型。下面是对这些基本数据类型的详细解释,包括它们的大小和默认值,以及一些常见的面试中容易出错的知识点。 基本数据类型及其大小和默认值 整型

    2024年04月16日
    浏览(40)
  • 【shell脚本】shell脚本之企业日常机器巡检脚本(进阶实战一)

    恭喜你,找到宝藏博主了,这里会分享shell的学习整过程。 shell 对于运维来说是必备技能之一,它可以提高很多运维重复工作,提高效率。 shell的专栏,我会详细地讲解shell的基础和使用,以及一些比较常用的shell技巧。 有需要的可以从这里开始,可以教会你如何去进行shel

    2024年02月15日
    浏览(38)
  • 【shell脚本】shell脚本之日志切割(进阶实战三)

    恭喜你,找到宝藏博主了,这里会分享shell的学习整过程。 shell 对于运维来说是必备技能之一,它可以提高很多运维重复工作,提高效率。 shell的专栏,我会详细地讲解shell的基础和使用,以及一些比较常用的shell技巧。 有需要的可以从这里开始,可以教会你如何去进行shel

    2024年02月15日
    浏览(41)
  • Linux-03shell语法复习与习题

    2024年02月04日
    浏览(84)
  • ChatGPT之后,下个AIGC杀手级应用已近在眼前

    鱼羊 发自 凹非寺 量子位 | 公众号 QbitAI 大模型模式,正在新一波AIGC的浪潮里被再度验证。 从AI画画的出圈,到现如今ChatGPT的火爆,面向大众的爆款产品接口背后,无不是大模型技术的突破创新。 而当这种“大力出奇迹”的技术路径价值愈发凸显,行业内外也不禁好奇:

    2024年02月10日
    浏览(45)
  • Shell脚本编程实践——第3关:使用Shell脚本创建文件目录

    任务描述 本关任务:设计一个Shell程序,在/home目录下建立一个userdata目录,在userdata目录下再建立5个目录,即user1~user5,并设置每个目录的权限,其中其他用户的权限为:读;文件所有者的权限为:读、写、执行;文件所有者所在组的权限为:读、执行。 相关知识 为了完成

    2023年04月22日
    浏览(44)
  • 【Linux命令-shell】虚拟机中创建shell脚本、查看当前路径、执行脚本

    目录 一、创建shell脚本 二、查看当前的路径 三、执行脚本 一、创建shell脚本 shell脚本的特点 提前将可执行的命令语句写入一个文件中 顺序执行 解释器逐行解释代码 常见的脚本有:shell、python、PHP...... 注:用什么解释器就是什么脚本 编写shell脚本: 步骤: 1、新建文件 2、

    2024年02月05日
    浏览(63)
  • shell脚本实战案例---安全脚本

    例题:自动化禁止恶意IP访问         应用场景:防止恶意IP尝试ssh登录。---暴力破解密码         脚本说明:将密码输入错误超过4次的IP地址通过iptables防火墙阻止访问。 目录 1.脚本分析: 【1】首先ssh登录之后,产生的日志文件是哪个,模拟暴力破解密码会有什么提示

    2024年02月03日
    浏览(41)
  • 【Shell脚本4】Shell 传递参数

    我们可以在执行 Shell 脚本时,向脚本传递参数,脚本内获取参数的格式为:$n。n 代表一个数字,1 为执行脚本的第一个参数,2 为执行脚本的第二个参数,以此类推…… 以下实例我们向脚本传递三个参数,并分别输出,其中 $0 为执行的文件名(包含文件路径): 为脚本设置

    2024年02月05日
    浏览(39)
  • 在 SHELL 脚本中调用另一个 SHELL 脚本(报错: go: not found)

    在Linux平台上开发,经常会在console(控制台)上执行另外一个脚本文件,经常用的方法有:./my.sh 或 source my.sh 或 . my.sh;这三种方法有什么不同呢? 问题: A 脚本调 B脚本,如下:sudo ./build.sh 报错 B脚本中的 ./build.sh: 5: go: not found。 但是单独运行B脚本没有问题。 问题分析: 这

    2024年02月13日
    浏览(47)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包