首页 > 系统相关 >shell脚本常用命令

shell脚本常用命令

时间:2024-09-30 19:22:31浏览次数:8  
标签:脚本 shell 示例 如下 数组 常用命令 echo

  1. 常用命令

2.1查看脚本执行过程

2.2查看脚本是否有语法错误

2.3 date命令

2.3.1 显示年、月、日

date +%Y-%m-%d    #年(以四位数字格式打印年份)月日

date +%y-%m-%d    #年(以两位数字格式打印年份)月日

date +%T          #年(以四位数字格式打印年份)月日

2.3.2 显示小时、分钟、秒

2.3.3 显示星期

date +%w          #一周中的第几天

date +%W          #一年中的第几周

2.3.4 时间戳

命令date +%s显示从1970年1月1日00:00:00UTC到目前为止的秒数

使用命令 date -d @1727241942显示输入秒数之前的时间

2.3.5 显示一个小时/一天/一年  之前\之后

3、Shell脚本中的变量

3.1 引用命令的结果

当我们引用某个变量的结果时,可以使用变量替代

由此可见,我们可以将命令结果赋值给变量,采用两种方式的其中一种实现

3.2 与用户交互

3.3 内置变量

创建一个名为bian.sh的脚本

执行脚本后,再次执行脚本

3.4 数学运算

Shell脚本中的变量常用于数学运算当中

执行脚本

4、shell中的逻辑判断

4.1 不带有else

基础结构:

if  判断语句; then

    command

fi

示例如下:

执行脚本

4.2 带有else

基础结构

if  判断语句  ; then

    command

else

    command

fi

示例如下:

4.3 带有elif

示例如下:

执行脚本

4.4 嵌套

示例如下

执行脚本

多个条件

if [ $a -gt 5 ] && [ $a -lt 10 ] == if [ $a -gt 5 -a $a -lt 10]     # -a表示 and

if [ $b -gt 5 ] || [ $b -lt 3] == if [ $b -gt 5 -o $b -lt 3 ]        # -o表示 or

4.6 if逻辑判断

4.6.1 if判断文件的目录属性

shell脚本中if经常用于判断文档的属性,比如判断是普通文件还是目录,判断文件是否有读、写、执行权限等。If常用选项如下:

-e:判断文件或目录是否存在。

-d:判断是不是目录以及是否存在。

-f:判断是不是普通文件以及是否存在。

-T:判断是否有读权限。

-w:判断是否有写权限。

-X:判断是否可执行。

Root用户对文件的读写比较特殊,即使一个文件没有给root用户读或者写的权限,root也可以读或者写

4.6.2 if判断的一些特殊用法

命令if[ -z “$a”];表示当变量a的值为全空时会怎么样

命令  if [ -n "$a" ]; 表示当变量a的值不为空时会怎么样

命令 if grep -q '123' 1.sh; then 表示如果1.sh中含有’123’会怎么样,其中-q表示即使过滤出内容也不要打印出来

 if (($a<1)); then 等同于 if [ $a -lt 1 ];then 二者都可以用来进行判断,需要注意的是,当我们未对变量a进行赋值时则会报错,如下图所示

注意:[ ]中不能使用<,>,==,!=,>=,<=这样的符号,需要时要使用固定写法 -gt (>); -lt(<); -ge(>=); -le(<=);-eq(==); -ne(!=)。

4.7 shell中的case判断

Case判断的基础格式如下

case 变量 in

value1)                    #不限制value的个数

command

;;

value2)

command

;;

*)                         #此处*代表其他值

command

;;

esac

实验验证

执行脚本

  1. shell中的循环

5.1 for循环

基础结构

for 变量名 in 循环条件;

do

command

done

实验演示

执行脚本

5.2 while循环

基础结构

while 条件; do

command

done

示例1:

运行结果:

示例2:

运行结果

  1. shell中的中断与继续
    1. 跳出循环

break在脚本中表示跳出该层循环

执行结果:

    1. 结束本次循环

当在shell脚本中使用continue时,结束的不是整个循环,而是本次循环。忽略continue之下的代码,直接进行下一次循环

执行结果

    1. 退出整个脚本

当我们在shell脚本中遇到exit时,其表示直接退出整个shell脚本

执行过程

  1. shell中的函数

shell脚本中的函数就是先把一段代码整理到了一个小单元中,并给这个小单元命名,当我们用到这段代码时直接调用这个小单元的名字就可以了,这样很方便,省时省力。但我们需要注意,在shell脚本中,函数一定要写在前面,因为函数要被调用的,如果还未出现就被调用就会出错。

基础格式:

function f_name()

{

command

}

    1. 打印出第一个、第二个参数、参数的个数及脚本名

示例:

执行过程

    1. 加法的函数

示例:

执行过程:

    1. 获得一个网卡的ip地址

示例:

执行结果:

  1. shell中的数组
    1. 数组读取

首先我们需要先定义一个数组a=(1 2 3 4 5);

命令 echo ${a[@]} 读取数组中的全部元素。示例如下:

命令 echo ${#a[@]} 获取数组的元素个数。示例如下:

命令 echo ${a[2]} 读取第三个元素,数组从0开始。示例如下:

echo ${a[*]} 等同于 ${a[@]}  作用为显示整个数组。示例如下

    1. 数组赋值

a[1]=100; echo ${a[@]}  替换指定的元素值。示例如下

a[5]=2; echo ${a[@]}  如果下标不存在则会自动添加一个元素。示例如下:

a[7]=6; echo ${a[@]}   跳着添加元素时,中间未赋值的元素,不显示且无值。示例如下:

    1. 数组的删除

命令unset a[1] 用于删除单个元素。示例如下

命令unset a 用于删除整个数组。示例如下:

    1. 数组分片

在进行实验操作之前,需要对一个数组进行赋值  a=(`seq 1 5`) 。

命令echo ${a[@]:0:3}  表示从第一个元素开始,截取3个元素,并打印出来。示例如下:

命令echo ${a[@]:1:4}  表示从第二个元素开始,截取4个元素,并打印出来。示例如下:

echo ${a[@]:0-3:2}  表示从倒数第3个元素开始,截取2个元素,并打印出来。示例如下:

    1. 数组替换

使用命令echo 使用命令a=(${a[@]/b/100})   表示用100替换b,这种方法不仅可以打印出来还可以保存替换。示例如下:

使用命令a=${a[@]/b/100}   表示用100替换b,但不会保存替换,只是打印出来。示例如下:

标签:脚本,shell,示例,如下,数组,常用命令,echo
From: https://blog.csdn.net/2301_82330629/article/details/142662418

相关文章

  • AutoJsPro项目脚本合集(附带全套源码,线程不会的看过来)
    话不多说,直接上代码"ui";letKeepAliveService={/**开启*/start:function(idStr,nameStr){try{idStr=idStr||"";letchannel_id=idStr+".foreground";letchannel_name=nameStr+"前台服务通知&q......
  • Shell脚本基础知识-初步版
    本文是笔者研究生期间在阅读《Linux命令行与shell脚本编程大全》之后总结出来的一些重点知识的记录,在此重新整理输出。以便在给上个帖子涉及到的相关知识点进行一下讲解,帮助自己复习shell脚本的首行规范化应该是#!/bin/bash#functiondescription其中第一行必须如此,#后......
  • 系统巡检脚本
      #!/bin/bash#获取CPU使用率cpu_usage(){echo"CPUUsage:"top-bn1|grep"Cpu(s)"|awk'{print"User:"$2"%,System:"$4"%,Idle:"$8"%"}'}#获取内存使用......
  • Linux的常用命令
    1、用户操作#创建用户useradd用户名#删除用户userdel用户名-f#强制删除用户-r#删除用户的同时,删除与用户相关的所有文件-fr#联合使用#添加密码passwd用户名#切换用户su用户名2、系统操作2.1系统关机#系统关机shutdown#一分钟之后关机shutdown-h......
  • 修改图片的DPI为300,图片格式转换成jpg,nodejs脚本
    //用sharp转换图片格式constSharp=require('sharp');//引入fs库用于文件操作constfs=require('fs');//引入path库用于处理文件路径constpath=require('path');//引入exiftool库用于处理图片元数据constexiftool=require('exiftool-vendored').exifto......
  • Redis 中Lua脚本的使用
    Redis中Lua脚本的使用Redis支持使用Lua脚本来执行原子操作,以下是一个简单的RedisLua脚本示例以及如何在Redis中使用它。示例:计数器这个脚本会增加一个指定键的计数器,并返回新的计数值。--increase_counter.lualocalkey=KEYS[1]--第一个参数是键localincrem......
  • Altium Designer脚本的执行方式
       在AltiumDesigner脚本系统中执行脚本支持多种方法 1.点击工具栏的运行工具(蓝色向右三角图标)可以执行脚本程序;2.点击菜单栏Run->Run可以执行脚本程序;3.在脚本编辑器中,按键盘的F9键可以执行脚本程序;4.通过菜单栏执行脚本程序(需要将程序添加到菜单栏中);5.通过工具栏......
  • Altium Designer脚本的执行方式
        在AltiumDesigner脚本系统中执行脚本支持多种方法1.点击工具栏的运行工具(蓝色向右三角图标)可以执行脚本程序;2.点击菜单栏Run->Run可以执行脚本程序;3.在脚本编辑器中,按键盘的F9键可以执行脚本程序;4.通过菜单栏执行脚本程序(需要将程序添加到菜单栏中);5.通过工具......
  • Unity获取当前脚本所在位置的全路径
    前言我们在开发插件或一些模板代码时,总会出现当如果文件夹被移动导致我们所需要的一些配置模板或配置路径错误。为了避免这种情况,我们就需要在我们的插件代码中进行一个路径修正,具体的修正逻辑就由使用者进行自定义了,而我们只需要获取到当前的全部再进行修改即可。 ///<summ......
  • shc加密shell脚本总结
    shc介绍shc是shell编译器(ShellCompiler)的缩写,它可以对shell脚本进行编译和加密。它能够将shell脚本编译为可执行的二进制文件,其中包含了脚本的功能和逻辑,而不暴露源代码。可以说shc就是一个加密shell脚本的工具。shc的官方网址为:http://www.datsi.fi.upm.es/~frosal/sources/......