精华内容
下载资源
问答
  • 更多相关内容
  •   在升级应用时,我们常常会遇到升级数据库的问题,这就涉及到sql脚本编写。   一般我们会通过写sql脚本,然后将xxx.sql脚本放到数据库进行source xxx.sql执行。本篇文章,我们可以通过写shell脚本来执行...
  • Linux vim编写脚本自动加作者信息与备注,需要下载上传到用户家目录下,把.vimrc文件进行替换就可以了,使用需要在脚本文件后加.sh
  • 如下: workdir=$(cd $(dirname $0); pwd) ... 您可能感兴趣的文章:使用 Python 获取 Linux 系统信息的代码Linux系统信息查看常用命令linux shellif的各种判断Linux shell脚本的建立与执行linux she
  • Linux脚本编程

    2021-11-27 14:57:57
    Linux脚本编程使用多条命令写一个简单地shell引用遍量反引号(波浪线那个键)重定向 使用多条命令 写一个简单地shell 第一行 #!bin/bash 不能出错啊,不然你觉得bad interpreter什么意思?? 引用遍量 $+变量名 ...

    构建shell基本脚本

    使用多条命令

    在这里插入图片描述

    写一个简单地shell

    在这里插入图片描述
    在这里插入图片描述
    第一行 #!bin/bash 不能出错啊,不然你觉得bad interpreter什么意思??

    引用变量

    概述

    set查看,引用时加$即可。
    用户变量赋值不需要$,和java赋值差不多。
    环境变量赋值需要用到$。
    在这里插入图片描述

    关于$的用法

    在这里插入图片描述
    引用变量进行打印,赋值时需要用$,否则系统视为字符串

    反引号(波浪线那个键)

    允许将shell命令输出赋给变量。
    test=date,在markdown里面也有这个功能

    例子1

    在这里插入图片描述

    例子2

    在这里插入图片描述
    在这里插入图片描述

    重定向(>(覆盖输出) 和 <(输入) 和 >>(追加输出))

    输入(<)

    在这里插入图片描述

    内联输入

    在这里插入图片描述

    管道

    以查询安装包是否安装为例

    连接到文件

    在这里插入图片描述
    在这里插入图片描述

    连接到函数

    在这里插入图片描述
    在这里插入图片描述

    其他用法

    在这里插入图片描述

    算术运算

    用\来转义算术运算符

    一些可能没见过的用法

    在这里插入图片描述

    在这里插入图片描述
    在这里插入图片描述
    问题:只支持整数运算

    bc计算器

    所有的运算结果只能保存在于bash计算器内部,不能拿出来赋值,因为到了外面就没浮点数了。
    在这里插入图片描述

    在这里插入图片描述

    在脚本中使用bc

    在这里插入图片描述
    在这里插入图片描述

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    shell退出状态码

    默认是最后一个函数的返回值,存储在?环境变量中。
    在这里插入图片描述

    在这里插入图片描述
    在这里插入图片描述

    exit

    在这里插入图片描述
    shell最后exit 5,那返回的就是5
    返回的不会大于255,可以使用变量。

    总结

    在这里插入图片描述
    打开vim之后,用:q!不保存退出。

    结构化命令

    if then

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    if then else

    在这里插入图片描述
    在这里插入图片描述

    嵌套if(elif)

    在这里插入图片描述

    判断条件参数:test

    在这里插入图片描述
    在这里插入图片描述

    比较条件参数


    在这里插入图片描述

    bc的限制

    在这里插入图片描述

    在这里插入图片描述

    字符串大小

    在这里插入图片描述
    在这里插入图片描述

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    解决方法

    \>

    其他字符串比较参数

    在这里插入图片描述

    文件比较参数

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    复合条件参数

    展开全文
  • Linux脚本编写基础

    2018-11-09 22:57:36
    该文档包含了基本的Linux脚本操作,常用的终端命令,适合Linux新手借鉴学习
  • 主要介绍了linux环境下编写shell脚本实现启动停止tomcat服务的方法,非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下
  • 很多时候,我们想要给系统添加一个开机自动启动的脚本,用来解决一些问题,比如snmp服务,tomcat服务等。这个时候,我们可以自己手动写一个启动脚本,并且添加到开机自动...一:首先,编写一个脚本autostart.sh,且...

    很多时候,我们想要给系统添加一个开机自动启动的脚本,用来解决一些问题,比如snmp服务,tomcat服务等。

    这个时候,我们可以自己手动写一个启动脚本,并且添加到开机自动启动项目里面。这样子每次开机就可以自动启动我们想要启动的服务。而且因为是自己写的启动脚本,可以自己灵活地添加一些

    命令,比如打印启动日志等等。下面就是自己手动写开机自动启动脚本的方式。

    一:首先,编写一个脚本autostart.sh,且其中要有默认的如下语句,没有的话添加到系统中会报错:

    ### BEGIN INIT INFO

    # Provides:         shikenian

    # Required-Start:

    # Required-Stop:

    # Default-Start:      3 5

    # Default-Stop:   0 1 2 6

    # Description:        shikenian test

    ### END INIT INFO

    其中我们需要了解的是:# Default-Start:      3 5 ,表示该脚本启动的级别问题,一般设置为3 5就行了,同理,# Default-Stop设置为上面的0 1 2 6就好了。

    二:接下来,在脚本中添加下面的case语句,因为系统开机自动调用脚本的时候,会自动向脚本传递“start”参数。

    case "$1" in

    'start')

    echo “auto start environment success” >> log.log

    ;;

    *)

    echo “auto start failed” >> log.log

    ;;

    Esac

    三:往系统的/etc/init.d中添加一个指向该脚本的快捷方式

    先给脚本执行的权限,使用

    chmod a+x autostart.sh

    然后生成快捷方式

    ln –sf /home/autostart.sh /etc/init.d/autostart

    四:最后一步,执行一下命令,把我们的脚本添加到系统开机自动启动的服务中去

    Chkconfig –add autostart

    后面的名称就是/etc/init.d/目录中的那个快捷方式。

    展开全文
  • linux编写脚本的基本方法

    千次阅读 2021-07-27 10:36:15
    shell 脚本文件 shell 解释器可当作人与计算机硬件的“翻译官”, 他作为用户与linux系统...批处理(batch): 由用户事先编写好一个完整的shell脚本,shell会一次性执行脚本中诸多的命令。 脚本中不仅会用到一般的linu

    1 shell 脚本文件

    shell 解释器可当作人与计算机硬件的“翻译官”, 他作为用户与linux系统内部的通信媒介,除了能够支持各种变量与参数外,还提供了像判断,循环等高级编程语言有的控制流程的特性。 想要正确高效的做好系统运维工作,脚本的使用至关重要。

    shell脚本的工作方式有两种:交互式和批处理。

    • 交互式(interactive) : 用户输入一条就立即执行
    • 批处理(batch): 由用户事先编写好一个完整的shell脚本,shell会一次性执行脚本中诸多的命令。

    脚本中不仅会用到一般的linux命令、管道符、重定向,还需要把内部功能模块化后通过逻辑语句进行处理,最终形成日常使用的脚本。

    2 编写简单的脚本

    实际上,使用vim将命令写入到一个文件中,就是一个简单的脚本了

    [root@linuxlearner Desktop]# vim demo.txt 
    #!/bin/bash
    # this is a demo 
    pwd
    ls 
    [root@linuxlearner Desktop]# bash demo.txt 
    /home/redhat/Desktop
    demo.txt
    

    shell脚本的名称可以任意,但是为了区分,一般以.sh后缀,来表明这是一个脚本文件。

    一般脚本的第一行脚声明 # !用来告诉系统使用哪种shell解释器来执行该脚本
    第二行是对该脚本的注释信息,以便让后来使用脚本的人了解该脚本的功能或警告信息
    之后是脚本的命令

    另外也可以通过脚本的路径来执行脚本。

    3 脚本参数

    上述的脚本只能执行一些预先定义好的命令,让shell脚本程序更好地满足用户的实时需求,以便灵活完成工作,必须要让脚本像交互式执行命令一样,能够接收用户的参数。
    实际上,脚本文件就可以接受参数,每个参数以空格隔开。

    1. $0代表当前脚本程序的名称
    2. $N 代表第N个参数, 如$1为第一个参数,$2为第二个参数。。。
    3. $* 为所有的参数
    4. $?为上一次命令执行的返回值

    比如下例:

    [root@linuxlearner Desktop] vim example.sh
    #!/bin/bash 
    # this a example scrip to demonstrate the usage of arguments 
    echo the name of this script is $0 
    echo the first argument of this script is $1
    echo the second argument of this script is $2
    echo there are $# arguments totally, they $* 
                                                  
    [root@linuxlearner Desktop]# bash example.sh hello world
    the name of this script is example.sh
    the first argument of this script is hello
    the second argument of this script is world
    there are 2 arguments totally, they hello world
    

    4 脚本参数的判断

    系统可以对用户输出的参数进行判断和测试,按照测试对象来划分,测试语句可以分为四种:

    4.1 文件测试语句

    用来判断文件是否存在或权限是否满足等情况的运算符。 具体用法如下

    运算符作用
    -d测试文件是否目录
    -e测试文件是否存在
    -f判断是否问一般文件
    -r测试当前用户是否有权限读取
    -w测试当前用户是否有权限写入
    -x测试当前用户是否有权限执行

    测试 /etc/fstab 是否为一个目录类型的文件,然后通过shell解释器内设的$?来显示上一条命令的执行就结果。如果返回值为0,则存在。非0值,则不存在。

    [root@linuxlearner Desktop]# [ -d /etc/fstab ] 
    [root@linuxlearner Desktop]# echo $?
    1
    

    [ 与 ] 本身也是命令,所以要空格隔开

    4.2 逻辑测试语句

    逻辑语句对于测试结果进行逻辑分析,可根据测试结果可以实现不同的效果。

    4.2.1 并 &&

    逻辑并表示两者都为真则为真,所以第一条为假则为假,第一条为真时要判断第二句,也就是说,&&前面的语句执行成功后才会执行后面的命令。

    [root@linuxlearner Desktop]# [ -d /home/redhat/Desktop ] && echo "this file is a directory" 
    this file is a directory
    

    4.2.2 或 ||

    逻辑或表示有一个为真则为真,所以第一条为真则为真,第一条为假时要判断第二句,也就是说,||前面的语句执行为假才会执行后面的命令。

    [root@linuxlearner Desktop]# [ -d /home/redhat/Desktop/example.sh ] || echo "this file is not a directory" 
    this file is not a directory
    

    4.2.3 非 !

    它表示把判断结果取相反值 。

    [redhat@linuxlearner /]$ [ ! $USER = root ] && echo "this is not administrator"
    this is not administrator
    

    4.3 整数值比较语句

    由于大于号小于号与定向符号冲突了,所以需要使用整数比较运算符:

    运算符含义
    -eq (equal)等于
    -ne(not equal)不等于
    -gt(greater then )大于
    -lt(less than)小于
    -ge(greater than or equal)大于等于
    -le(less than or equal)小于等于
    [redhat@linuxlearner /]$ [ 1 -lt 2 ] && echo "right" 
    right
    [redhat@linuxlearner /]$ [ 1 -lt 2 ] && [ 1 -eq 1 ] 
    [redhat@linuxlearner /]$ echo $?
    0
    

    4.4 字符串比较语句

    字符串的比较语句用于判断测试字符串是否为空值,或者两个字符串是否相同,它经常用来判断某个变量是否被定义(即内容为空值)。

    运算符含义
    =字符串内容是否相同
    !=是否不同
    -z判断字符串是否为空, 空为真
    [root@linuxlearner /]# [ ! -z $SHELL  ] &&  echo "this variable exist" 
    this variable exist
    

    5 脚本的流程控制

    尽量上述的测试语句可以完成基本的流程控制,但这并不够灵活,在生产环境中我们需要通过if、 for、while、case四种流程控制语句编写更灵活复杂的脚本。这四个语句逻辑上和其他语言的用法并没有区别,只是语法的区别。这里不再赘述了,直接给出例子展示语法。

    if

    测试是否能与主机通信

    [root@linuxlearner Desktop]# vim chkhost.sh 
    #!/bin/bash 
    # determine whether host is online 
    ping -c 3 $1 &> /dev/null
    if [ $? -eq 0 ]
    then
    echo "host $1 is online" 
    else
    echo "host $1 is offline"
    fi
    
    [root@linuxlearner Desktop]# bash chkhost.sh 
    host  is offline
    [root@linuxlearner Desktop]# bash chkhost.sh 192.168.10.10 
    host 192.168.10.10 is online
    [root@linuxlearner Desktop]# bash chkhost.sh 192.168.10.20
    host 192.168.10.20 is offline
    

    多分支例子,输入分数后输出评价。

    [root@linuxlearner Desktop]#vim chksceore.sh
    #! /bin/bash 
    # input an interger score, output an evalution 
    read -p "enter your score(0-100):" GRADE
    if [ $GRADE -gt 100 ] || [ $GRADE -lt 0 ]
    then echo "score is invalid"  
    elif [ $GRADE -ge 85 ] && [ $GRADE -le 100 ]
    then echo "excellent"
    elif [ $GRADE -ge 60 ] && [ $GRADE -lt 85 ]
    then echo "pass"
    else
    echo "fail"
    fi     
    [root@linuxlearner Desktop]# bash chksceore.sh 100
    enter your score(0-100):100
    excellent
    [root@linuxlearner Desktop]# bash chksceore.sh 
    enter your score(0-100):120 
    score is invalid
    [root@linuxlearner Desktop]# bash chksceore.sh 
    enter your score(0-100): -1
    score is invalid
    [root@linuxlearner Desktop]# bash chksceore.sh 
    enter your score(0-100):40 
    fail
    

    for

    从列表文件中读取多个用户名,然后逐一创建用户账户并设置密码。

    #新建带创建用户名单
    [root@linuxlearner Desktop]# vim users.txt 
    andy
    barry 
    jack 
    simmen 
    tracy 
    # 新建脚本
    #!/bin/bash 
    # read name then cerate an acount
    read -p "enter the users password:" PASSWD
    for UNAME in `cat users.txt`
    do
     id $UNAME &> /dev/null
     if [ $? -eq 0 ]
     then
     echo "already exists"
     else
      useradd $UNAME &> /dev/null
      echo $PASSWD | passwd --stdin $UNAME &> /dev/null
      if [ $? -eq 0 ]
      then
      echo "$UNAME, create success" 
      else
      echo "$UNAME, cerate failure" 
      fi
     fi
    done
    
    # 运行脚本
    [root@linuxlearner Desktop]# bash createacount.sh 
    enter the users password:101650
    andy, create success
    barry, create success
    jack, create success
    simmen, create success
    tracy, create success
    

    while

    编写一个猜数字大小的脚本

    [root@linuxlearner Desktop]# vim guess.sh 、
    #! /bin/bash 
    # guess which the integer is 
    INTEGER=$(expr $RANDOM % 1000)
    TIMES=0
    echo "there is a integer between 0 and 999, guess who it is"
    echo $INTEGER
    while true 
    do
    read -p "please guess:" INT
    let TIMES++
    if [ $INT -eq  $INTEGER ]
    then
    echo "congratulations, your answar is right, the true integer is $INTEGER" 
    echo "you guessed $TIMES times" 
    exit 0
    elif [ $INT -gt $INTEGER ]
    then
    echo "too big" 
    else
    echo "too small" 
    fi
    done
    [root@linuxlearner Desktop]# bash guess.sh 
    there is a integer between 0 and 999, guess who it is
    please guess:500
    too big
    please guess:250
    too small
    please guess:375
    too big
    please guess:320
    too big
    please guess:300
    too big
    please guess:265
    congratulations, your answar is right, the true integer is 265
    you guessed 6 times
    

    case

    [root@linuxlearner Desktop]# vim checkkey.sh
    #!/bin/bash 
    read -p "please anter a string:" KEY
    case "$KEY" in
    [a-z] | [A-Z])
    echo "what your input is alphabeta" 
    ;;
    [0-9])
    echo "what you input is number"
    ;;
    *)
    echo "what you input is space or other control string" 
    esac
    [root@linuxlearner Desktop]# bash checkkey.sh 
    please anter a string:1
    what you input is number
    [root@linuxlearner Desktop]# bash checkkey.sh 
    please anter a string:t
    what your input is alpha
    [root@linuxlearner Desktop]# bash checkkey.sh 
    please anter a string: 
    what you input is spass or other control string             
    
    展开全文
  • springboot项目启动脚本,jar包项目万能启动脚本,只需要替换文件注释的需要替换的地方 其他不需要改动,将脚本文件放到项目jar包相同目录下,再给脚本文件赋予权限:chmod +x 脚本文件名 之后直接:./脚本文件名...
  • linux script expect脚本编写方法
  • Linux shell脚本编写

    千次阅读 2021-09-19 10:58:15
    Linux shell脚本编写 描述 shell脚本是一些linux命令的集合,因为在Linux的...在linux系统,shell脚本通常使用内置的vim编辑器编写; 也可以在其他的支持shell语言的编辑器中编写后导入Linux系统; 脚本开头(sh
  • 在进行linux测试时编写脚本是必不可少的,Shell脚本的名称可以随便定义,也不要什么后缀名, 例如可以写abc,smartzip这类名称,运行时只要键入 ./smartzip就能运行脚本了。。 每行命令开头处不用就空格也行。。 第1...
  • 主要介绍了9个实战及面试常用Shell脚本编写,非常不错,具有一定的收藏价值,需要的朋友可以参考下
  • linuxShell脚本编写实验7报告.pdf
  • linux bash shell脚本文件.sh,自动输入sudo的密码 在脚本中使用sudo命令,将密码保存在脚本中,不需要手动输入密码
  • 实验目录一、实验环境:二、实验目的:三、实验要求:四、实验内容:五、实验步骤:六、实验结果与分析: 一、实验环境: •虚拟机数量:1 ...因此,有必要编写脚本以实现备份工作的自动执行。 四、实验
  • Linux脚本编写基础.pdf

    2021-09-26 22:55:56
    Linux脚本编写基础.pdf
  • Linux下 python脚本编写

    千次阅读 2022-01-27 16:50:36
    服务器测试,我们就经常用到shell和python脚本。测试时间长了,这两种语言就有必要学习一下。下面我们将一个简单的shell脚本转化为python。 比如 一个检测ssd smart log的脚本 #!/bin/bash for ssd in `lsscsi |...
  • linux编写脚本文件 .sh

    千次阅读 2020-08-25 15:17:42
    编写base.sh的脚本文件的过程。 1. touch base.sh //创建一个脚本文件 2.vim base.sh //打开脚本文件 3. 从键盘上输入字母 i 进入vim的插入模式(编辑模式) 4. //后面的的注释,只是为了方便记忆,运行时不能...
  • 在学习shell 脚本之前,需要你了解很多关于shell的知识,这些知识是编写shell脚本的基础,所以希望你能够熟练的掌握
  • Linum Linum是另一个用Shell脚本编写Linux枚举脚本。 描述Linum调用Linux内置命令并查询配置文件和日志文件,以收集有关系统的各种信息。 用法最好以root用户访问权限运行此脚本,因为某些信息只能作为root用户收集...
  • 主要介绍了linux编写.sh脚本并赋权限问题,文中给大家提到了Linux为sh脚本文件添加执行权限的方法,需要的朋友跟随脚本之家小编一起学习吧
  • 写到这里,我们千峰网络安全的第二个阶段的学习就到此结束了,学完Linux操作系统之后,感觉学习效果不太好,后期我打算专门出一期Linux的汇总,也算是再强化一下吧,毕竟...Linux中脚本其实就类似我们在windows系统
  • linux 编写shell脚本遇到的问题

    千次阅读 2021-12-24 10:24:30
    在windows下的编辑文档中编写的 vinginx_pkill_start.sh 复制内容放入 #/bin/bash NGINX_DIR=/usr/local/nginx/ NGINX_SBIN=/usr/local/nginx/sbin/nginx NGINX_CONF=/usr/local/nginx/conf/nginx.conf echo ...
  • 在了解了Linux终端和其搭配的基本Shell(默认为bash)的基础下,我们就可以在终端中用vi/vim编辑器编写一个shell的脚本程序了Shell既为一种命令解释解释工具,又是一种脚本编程语言,用各种shell下的命令和一些特定的...
  • 文件是关于linux定时任务的脚本,文件包含了编辑的shell脚本实例,以及linux如何去设置定时器,如何给脚本赋权限。
  • 完全使用Linux shell脚本语言编写的一个简单的作业管理系统
  • linux中编写同步文件的脚本

    万次阅读 2020-07-06 16:08:26
    编写一个名为xsync的脚本文件: 作用: 将当前机器的文件,同步到集群所有机器的相同路径下! hadoop102:/A/a , 执行脚本后,将此文件同步到集群所有机器的 /A/a 用户在使用xsync时,只需要传入要同步的文件即可 ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 235,608
精华内容 94,243
关键字:

linux中编写脚本

友情链接: op_model_ppro.rar