精华内容
下载资源
问答
  • Linux shell脚本习题

    2019-03-17 08:51:33
    Shell脚本Linux运维、自动化运维体系中不可或缺的一个非常重要的部分,几乎所有的招聘需求中都会要求会写Shell脚本。 很多人都觉得Shell脚本不会写,写不出来。这就是因为练习不够。体系课程一共包含100道Shell...
  • 后台运行的原因 在 windows 上,在 cmd 命令窗口...windows 通过 bat 脚本后台启动 jar 包,通过 jps 找到 pid,然后停止指定 jar 包,附 linux shell 脚本启停脚本 参考 springboot 程序,lib 下是依赖 jar windo...

    后台运行的原因

    在 windows 上,在 cmd 命令窗口,使用 java -jar 的方式启动,cmd 窗口会一直存在,若关闭,程序也就停止运行了,所以需要后台运行

    说明

    windows 通过 bat 脚本后台启动 jar 包,通过 jps 找到 pid,然后停止指定 jar 包,附 linux shell 脚本启停脚本

    参考

    springboot 程序,lib 下是依赖 jar
    在这里插入图片描述

    windows 端启停脚本

    1. 启动脚本
    bat 启动无法输出日志到文件,但是拷贝命令到 cmd 就可以输出到文件,不懂为什么
    若启动多个 jar 包,须保证 jar 包名称不同。

    @echo off
    echo find analog-access-1.0.jar to kill before start process.
    call stop.bat
    echo ------ begin start analog-access-1.0.jar, see: ./logs/analog-access.log. ------
    start javaw -Xms1024m -Xmx2048m  -Dsun.lang.ClassLoader.allowArraySyntax=true -Duser.timezone=GMT+08 -cp analog-access-1.0.jar;lib/*; indi.tudan.analogaccess.AnalogAccessApplication 1>>.\logs\analog-access.log 2>&1 &
    exit
    

    2. 停止脚本
    解析:通过 jps -l 命令,找到程序对应的进程 id,即 pid,然后终止 pid 即可。其中,indi.tudan.analogaccess.AnalogAccessApplication 为程序入口类包路径。

    @echo off
    set program=indi.tudan.analogaccess.AnalogAccessApplication
    echo program: %program%
    for /f "usebackq tokens=1-2" %%a in (`jps -l ^| findstr %program%`) do (
    	set pid=%%a
    	set image_name=%%b
    )
    if not defined pid (echo process %program% does not exists) else (
    	echo prepare to kill %image_name%
    	echo start kill %pid% ...
    	rem 根据进程ID,kill进程
    	taskkill /f /pid %pid%
    )
    

    linux 端启停脚本

    1. 启动脚本

    echo "find analog-access-1.0.jar to kill before start process."
    sh stop.sh
    echo "------ begin start analog-access-1.0.jar, see: ./logs/analog-access.log. ------"
    
    lib_names=`ls -l ./lib | awk '{if($NF~/jar/) print $NF}'`
    import_libs=""
    for lib_name in $lib_names
    do
      import_libs=$import_libs":./lib/"$lib_name
    done
    
    nohup java -Xms1024m -Xmx2048m  -Dsun.lang.ClassLoader.allowArraySyntax=true -Duser.timezone=GMT+08 -cp "./analog-access-1.0.jar$import_libs" indi.tudan.analogaccess.AnalogAccessApplication > ./logs/analog-access.log 2>&1 &
    

    2. 停止脚本

    #!/bin/sh
    PROCESS=`ps auxww | grep 'analog-access-1.0.jar' | grep 'indi.tudan.analogaccess.AnalogAccessApplication' | grep -v grep`
    if [ "$PROCESS" = "" ]; then
      echo "process analog-access-1.0.jar not exists"
    else
      SID=`echo $PROCESS | awk '{print $2 }'`
      echo "prepare to kill "$PROCESS
      echo "begin kill "$SID" ..."
      kill -9 $SID
      echo "kill successfully"
    fi;
    

    jvm.dll、java.exe、javaw.exe

    1. jvm.dll
      jvm.dll 是一个 java 虚拟机在 windows 平台环境上的实现,也是 JRE 的一部分,一个 C 程序能够使用 jvm.dll 直接运行在 jvm 上。

    2. java.exe
      java.exe 是 win32 控制台应用,它提供了一种帮助,代替使用 jvm.dll 执行 java classes 文件,作为一个 win32 控制台应用,显然他是和一个控制台相关联,当执行 java classes 的时候,它运行。

    3. javaw.exe
      javaw.exe 是相似的和 java.exe 是一个 win32 的 GUI 应用,应用提供自己的 GUI 窗口,不启用控制台。

    区别

    1. java 运行 jar 以后,会阻塞在那里直到窗口关闭。
    2. javaw 运行 jar 后,不会阻塞,直接就可以进行下一条命令的运行了。

    jps

    jps 的英文名称是 JVM Process Status Tool, 功能和 ps 命令类似。可以列出正在运行的虚拟机进程、显示虚拟机执行主类(main () 函数所在的类)的名称、这些进程的本地虚拟机的唯一 ID(LVMID, Local Virtual Machine Identifier,LVMID 和 PID 是一致的)。

    选项 作用
    -q 只输出 LVMID (PID)
    -m 输出虚拟机进程启动时传递给主类 main () 函数的参数
    -l 输出主类的全名,如果进程执行时是 Jar 包,输出 Jar 路径
    -v 输出虚拟机进程启动时 JVM 参数
    展开全文
  • Linux shell 脚本实现一键免密登陆

    万次阅读 2019-05-30 19:27:53
    Linux shell 脚本实现一键免密登陆本节索引场景分析SSH 服务Shell 脚本实现Shell 脚本下载 本节索引 场景分析 SSH 免密登录 Shell 自动化脚本 脚本下载地址 场景分析 在我们日常工作中,经常面对几十台上百台...

    本节索引

    1. 场景分析
    2. SSH 免密登录
    3. Shell 自动化脚本
    4. 脚本下载地址

    场景分析

    在我们日常工作中,经常面对几十台上百台服务器这样的环境,使用诸如ansible或者puppet这样的自动化运维工具则显得太过笨重和繁琐,并且最终的效果可能还不如几个小工具达到的效果好。所以ssh免密登录,配合自动化配置脚本,可以说是即方便也实用,关键是简洁明了、一气呵成。这一节将详细带大家以shell脚本的形式实现ssh免密登录进行百台机器的配置和管理。

    SSH 服务

    SSH 为 Secure Shell 的缩写,由 IETF 的网络小组(Network Working Group)所制定;SSH 为建立在应用层基础上的安全协议。SSH 是目前较可靠,专为远程登录会话和其他网络服务提供安全性的协议。SSH客户端适用于多种平台。几乎所有UNIX平台—包括HP-UX、Linux、AIX、Solaris、Digital UNIX、Irix,以及其他平台,都可运行SSH。

    ssh服务有两种验证用户登录的方式,一种是基于密码口令的认证,一种是基于密钥的认证,脚本主要是实现基于密钥的认证。

    Shell 脚本实现

    为避免复制公钥的时候手动输入密码,我们使用shell脚本编程中的expect来代替输入登录密码

    export_key()
    {
        echo "Export authorized key to $vuser@$vip  port $port";
    
        expect -f expect/ssh_command.exp $vip $vuser $vpasswd $port "
            if [ -f $HOME/.ssh ]; then
                rm $HOME/.ssh;
            fi;
            mkdir -p $HOME/.ssh;
            chmod 755 $HOME/.ssh;
            touch $HOME/.ssh/authorized_keys;
            "
        expect -f expect/ssh_command.exp $vip $vuser $vpasswd $port "
            echo $authorized_key >> ~/.ssh/authorized_keys;
            cat ~/.ssh/authorized_keys | sort | uniq > /tmp/$vuuser-secure-keys;
            mv /tmp/$vuuser-secure-keys ~/.ssh/authorized_keys;
        chmod 600 ~/.ssh/authorized_keys;"
    }
    
    

    然后,生成秘钥

    setup_key()
    {
        if [ ! -r "$HOME/.ssh/id_rsa.pub" ]; then
            echo "Generate RSA key pairs, please press ENTER for all questions."
            ssh-keygen -q -f $HOME/.ssh/id_rsa -N '' -t rsa
        fi
    
        authorized_key=`cat $HOME/.ssh/id_rsa.pub`
    }
    

    最后,复制公钥至远程主机

    ssh-copy-id [-i indetify_file ][user@host_ip] 
    

    Shell 脚本下载

    点我下载脚本
    提取码:7da7

    展开全文
  • Linux shell脚本之函数 Function 详解

    千次阅读 2019-07-16 23:57:50
    Linux shell脚本函数详解 函数递归 函数示例

    函数详解

    在过程式编程中,代码会重用。过程式编程又分为:模块化编程和结构化编程。
    把代码重用的代码段进行命名,并重复调用,这就是函数

    函数(function):把一段独立功能的代码当作一个整体,并为之命名一个名字,成为命名的代码段,此即为函数。

    在使用函数时,需要注意以下几点:

    • 1、定义函数的代码段在定义时是不会被执行的,在调用时才会被执行。
    • 2、在脚本中如果想要调用函数,在代码中给定函数名即可。
    • 3、函数名出现的任何位置,在代码执行时,都会被自动替换为函数代码

    函数语法

    函数常用的语法格式有两种:

    • 语法格式一
    function  f_name  {
    	...函数体...
    }
    
    • 语法格式二
    f_name()  {
    	...函数体...
    }
    

    函数的生命周期

    函数的生命周期在被调用时开始,返回时终止。

    其状态返回结果为函数体运行的最后一条命令的状态结果。当然也可以自定义状态返回结果。

    • 自定义函数的状态返回值,需要使用命令:return,格式如下:
      # return [0-255] ;其中 0 代表成功; 1~255 代表失败。
    • 函数执行过程中,只要遇到 return 就会终止执行,即使函数中还有未执行完的命令,类似于脚本中的 exit 。

    大家一定要注意区分状态返回结果和状态返回值:

    命令的返回结果:比如使用 ls 输出的内容列表
    命令的状态返回值: 使用 # echo $? 进行查看。0 代表成功; 1~255 代表失败。
    

    函数返回值

    函数的返回值包括两个:

    • 1、函数的执行结果返回值
    a、使用 echo 或者 printf 命令进行输出(printf 不会换行)
    b、函数体中调用的命令的执行结果
    
    • 2、函数的退出状态码
    a、默认取决于函数体中执行的最后一条命令的退出状态码
    b、自定义:return 值
    

    函数参数

    函数可以接受函数,在函数体当中,可以使用 $1,$2,… 引用传递给函数的参数。也可以使用 $* 或 $@ 引用所有的参数,使用 $# 引用传递的参数的个数。
    在调用函数时,在函数后面以空白符分隔给定参数列表即可,例如: testfunc arg1 arg2 arg3 …

    但是一定要注意,脚本参数 和 函数参数 是两回事,可以通过以下示例进行了解。

    1、添加10个用户,添加用户的功能使用函数实现,用户名作为参数传递给参数。

    [root@LeeMumu ~]# bash userAdd10.sh JC
    Add user JC1 finished.
    Add user JC2 finished.
    Add user JC3 finished.
    Add user JC4 finished.
    Add user JC5 finished.
    Add user JC6 finished.
    Add user JC7 finished.
    Add user JC8 finished.
    Add user JC9 finished.
    Add user JC10 finished.
    [root@LeeMumu ~]# cat userAdd10.sh 
    #!/bin/bash
    #
    # 5:user exists
    addusers() {
    if id $1 &> /dev/null; then
    	return 5
    else
    	useradd $1
    	retval=$?
    	return $retval
    fi
    }
    
    for i in {1..10}; do
    	addusers ${1}${i}                  # ${1}${i} 在这里对于函数 addusers 来说就是位置参数 $1 
    	retval=$?
    	if [ $retval -eq 0 ]; then
    		echo "Add user ${1}${i} finished."
    	elif [ $retval -eq 5 ]; then
    		echo "user ${1}${i} exists."
    	else
    		echo "Unkown Error."
    	fi
    done
    

    2、编写一个脚本,查看 192.168.1.1~192.168.1.254 之间哪些地址可以ping通。

    [root@LeeMumu ~]# bash pING.SH 
    Ping 192.168.1.1 successfully!
    Ping 192.168.1.2 successfully!
    ... ...
    [root@LeeMumu ~]# cat pING.SH 
    #!/bin/bash
    #
    # 
    pingtest() {
    	if ping $1 -c 1 &> /dev/null ; then
    		echo "Ping $1 successfully!"
    	else
    		echo "Ping $1 unsuccessfully!"
    	fi
    }
    
    for i in {1..254}; do
    	pingtest 192.168.1.$i              # 192.168.1.$i 在这里对于函数 pingtest 来说就是位置参数 $1 
    done
    

    3、打印NN乘法表。

    [root@LeeMumu ~]# bash NN1.sh 2
    1X1=1	
    1X2=2	2X2=4	
    [root@LeeMumu ~]# bash NN1.sh 3
    1X1=1	
    1X2=2	2X2=4	
    1X3=3	2X3=6	3X3=9	
    [root@LeeMumu ~]# bash NN1.sh 5
    1X1=1	
    1X2=2	2X2=4	
    1X3=3	2X3=6	3X3=9	
    1X4=4	2X4=8	3X4=12	4X4=16	
    1X5=5	2X5=10	3X5=15	4X5=20	5X5=25	
    [root@LeeMumu ~]# cat NN1.sh 
    #!/bin/bash
    #
    #
    NN() {
    for ((i=1;i<=$1;i++));do
    	for ((j=1;j<=i;j++));do
    		echo -e -n "${j}X${i}=$[${i}*${j}]\t"
    	done
    	echo
    done
    }
    
    NN $1
    

    变量作用域

    为了便于我们对函数的整体理解,我们在这儿对 本地变量局部变量 进行解释。

    1、本地变量

    本地变量的作用是是运行脚本的shell进程的生命周期;因此,其作用范围为当前shell脚本程序文件。脚本执行时实在shell子进程里执行,脚本执行结束后,变量销毁。

    变量赋值:name=value
    变量引用:${name}, $name
    	"":变量名会替换为其值;
    	'':变量名不会替换为其值;
    查看变量:set
    撤销变量:unset name
    	(注意:此处非变量引用;千万不能带 $ 符号,变量引用时才需要带 $ 符号)
    

    2、局部变量

    局部变量的作用域是函数的生命周期,在函数结束时被自动销毁。

    局部变量赋值:local VARIABLE=VALUE
    

    函数变量注意事项:

    • 1、函数结束不是脚本结束。
    • 2、函数里命令变量时,尽量定义为局部变量。
    • 3、函数里面可以调用本地变量,还可以对本地变量的值进行修改,会对自己脚本变量产生影响,所以在函数和主程序不进行交互的情况下,在函数里面尽量使用 local 定义局部变量。
    可参考以下博客,有对脚本变量的详细解释:
    	https://mp.csdn.net/mdeditor/95232625#bash_234
    

    函数变量示例

    通过以下示例,大家可以加强对函数变量的理解。
    1、函数使用本地变量,会改变本地变量的值。

    [root@LeeMumu ~]# bash fUNCTION1.sh  # 通过结果,可以得知通过调用函数改变了本地变量 
    Function: jerry
    Shell: jerry
    [root@LeeMumu ~]# cat fUNCTION1.sh 
    #!/bin/bash
    #
    name=tom                             # 定义本地变量 name=tom
    
    setname() {
    	name=jerry                       # 函数里定义本地变量  
    	echo "Function: $name"           # echo 函数变量
    }
    
    	setname                          # 调用函数
    	echo "Shell: $name"              # echo 本地变量    
    

    2、函数使用本地变量,不会改变本地变量的值。

    [root@LeeMumu ~]# bash fUNCTION2.sh  # # 通过结果,可以了解局部变量的作用域
    Function: jerry
    Shell: tom
    [root@LeeMumu ~]# cat fUNCTION2.sh 
    #!/bin/bash
    #
    name=tom                         
    
    setname() {
     	local name=jerry                       
    	echo "Function: $name"           
    }
    
    	setname                          
    	echo "Shell: $name"              
    

    函数递归

    函数递归是指函数直接或间接调用自身。

    递归示例

    1、阶乘函数

    [root@LeeMumu ~]# bash factTest.sh 1
    1
    [root@LeeMumu ~]# bash factTest.sh 2
    2
    [root@LeeMumu ~]# bash factTest.sh 3
    6
    [root@LeeMumu ~]# bash factTest.sh 11
    39916800
    [root@LeeMumu ~]# cat factTest.sh 
    #!/bin/bash
    #
    #
    fact() {
    	if [ $1 -eq 0 -o $1 -eq 1 ] ;then
    		echo 1
    	else
    		echo $[$1*$(fact $[$1-1])]    # () 代表命令引用  [] 代表公式
    	fi
    }
    
    fact $1
    

    2、斐波那契数列
    斐波那契数列(Fibonacci sequence),又称黄金分割数列、因数学家列昂纳多·斐波那契(Leonardoda Fibonacci)以兔子繁殖为例子而引入,故又称为“兔子数列”,指的是这样一个数列:1、1、2、3、5、8、13、21、34、……在数学上,斐波纳契数列以如下被以递推的方法定义:F(1)=1,F(2)=1, F(n)=F(n-1)+F(n-2)(n>=3,n∈N*)在现代物理、准晶体结构、化学等领域,斐波纳契数列都有直接的应用,为此,美国数学会从1963年起出版了以《斐波纳契数列季刊》为名的一份数学杂志,用于专门刊载这方面的研究成果。

    [root@LeeMumu ~]# bash fUNCTION3.sh 9
    1 1 2 3 5 8 13 21 34 
    [root@LeeMumu ~]# cat fUNCTION3.sh 
    #!/bin/bash	
    #
    fab() {
    	if [ $1 -eq 1 ]; then
    		echo -n "1 "
    	elif [ $1 -eq 2 ]; then
    		echo -n "1 "
    	else
    		echo -n "$[$(fab $[$1-1])+$(fab $[$1-2])] "
    	fi
    }
    
    for i in $(seq 1 $1); do
    	fab $i
    done 
    echo
    

    函数示例

    1、给定一个用户名,取得其用户的 id 号和默认的 shell 。

    [root@LeeMumu ~]# bash idShell.sh user33 
    1006:/bin/bash
    [root@LeeMumu ~]# cat idShell.sh 
    #!/bin/bash
    #
    userinfo() {
    	if id "$username" &> /dev/null ; then
    		grep "^$username\>" /etc/passwd | cut -d: -f3,7 
    	else
    		echo "No  Such User."
    	fi
    }
    
    username=$1
    userinfo 
    

    2、编写服务框架脚本

    #!/bin/bash
    #
    # chkconfig: - 50 50
    # description: test service script
    #
    prog=$(basename $0)
    lockfile=/var/lock/subsys/$prog
    
    start() {
    	if [ -f $lockfile ]; then
    		echo "$prog is running yet."
    	else
    		touch $lockfile
    		[ $? -eq 0 ] && echo "start $prog finshed."
    	fi
    }
    stop() {
    	if [ -f $lockfile ]; then
    		rm -f $lockfile
    		[ $? -eq 0 ] && echo "stop $prog finished."
    	else
    		echo "$prog is not running."
    	fi
    }
    status() {
    	if [ -f $lockfile ]; then
    		echo "$prog is running"
    	else
    		echo "$prog is stopped."
    	fi
    }
    usage() {
    	echo "Usage: $prog {start|stop|restart|status}"
    }
    
    case $1 in
    start)
    	start ;;
    stop)
    	stop ;;
    restart)
    	stop
    	start ;;
    status)
    	status ;;
    *)
    	usage
    	exit 1 ;;
    esac
    
    展开全文
  • 《Linux shell脚本编程入门》 ...尤其还收录了现在门户网站、企业等使用的主流套件CentOS(CommunityENTerpriseOperatingSystem)为基础的各种Linux命令,并以此为基础编写了Linuxshell脚本编程

    《Linux shell脚本编程入门》


    LinuxOS在服务器以及近来引发热议的嵌入式系统中都得到广泛应用,《Linuxshell脚本编程入门》介绍的就是该程序必备的shell编程要素。尤其还收录了现在门户网站、企业等使用的主流套件CentOS(CommunityENTerpriseOperatingSystem)为基础的各种Linux命令,并以此为基础编写了Linuxshell脚本编程示例,使读者可以亲自测试。
    通过《Linuxshell脚本编程入门》,读者可以了解到Linux学习中必知的shell(Bourneshell、Bashshell)指令,学习Linux整体系统要素,熟悉Linux服务器和嵌入式Linux的基础知识。另外,通过对Linux服务器运行中的必要因素——shell脚本编程的理解和示例,读者可以成长为善于思考的管理员、程序员,提高自己的知识水平。


    详细解读 和小伙伴们一起来吐槽


    展开全文
  • Linux shell脚本输出日志笔记整理

    万次阅读 2016-04-26 17:50:25
    Linux shell脚本输出日志比较整理
  • linux shell java lib(linux shell脚本加载java环境变量)
  • Linux Shell 脚本编程(8)—文本过滤(awk命令)文本过滤 正则表达式 —Linux Shell 脚本编程(5)—文本过滤(正则表达式) grep 命令 —Linux Shell 脚本编程(6)—文本过滤(grep命令) find命令 —Linux ...
  • Linux Shell脚本之色彩显示 1.脚本如下 #!/bin/bash clear echo -e &quot;\033[1m Hello World&quot; # bold effect echo -e &quot;\033[5m Blink&quot; # blink effect echo -e &quot;...
  • Linux shell脚本判断网络畅通 介绍 在编写shell脚本时,有的功能需要确保服务器网络是可以上网才可以往下执行,那么此时就需要有个函数来判断服务器网络状态 我们可以通过curl来访问 www.baidu.com,从而判断服务器...
  • Linux Shell脚本字符串拼接与赋值总结字符串拼接   最近在工作用到shell脚本,用到了字符串变量的拼接,同时需要对字符串进行赋值,这里与大家分享一下, 字符串拼接   shell脚本里面可以对字符...
  • 本文是Linux Shell脚本系列教程的第(十二)篇,更多Linux Shell教程请看:Linux Shell脚本系列教程 在上两篇文章Linux Shell系列教程之(十)Shell for循环和Linux Shell系列教程之(十一)Shell while循环中,...
  • Linux Shell脚本自动发邮件

    万次阅读 2019-01-04 23:44:08
    摘自: ... 亲测有效,本人亦是Red Hat服务器,感谢! 系统环境: ...[root@NPS-JK ~]# cat /etc/issue ...Red Hat Enterprise Linux Server release 6.1 (Santiago) Kernel \r on an \m
  • linux shell 脚本编程基本语法

    千次阅读 2017-06-06 17:32:03
    linux shell 脚本编程打印ip命令: ifconfig eth0 | grep ‘inet’| awk ‘{print $2}’ 第一行:#!/bin/sh:表示有bin/sh来执行 -a:表示and,类似于C语言中的& -o:表示or,类似C语言中的| linux有很多sheel ...
  • 本文是Linux Shell脚本系列教程的第(十一)篇,更多Linux Shell教程请看:Linux Shell脚本系列教程 在上一篇Linux Shell系列教程之(十)Shell for循环中,我们已经对Shell 循环语句的for循环进行了介绍,本篇给...
  • 一个好玩的Linux shell脚本

    千次阅读 2014-04-28 19:37:39
    一个好玩的Linux shell脚本,基本死调用cowsay
  • Linux Shell 脚本编程(5)—文本过滤(正则表达式)文本过滤 正则表达式 –Linux Shell 脚本编程(5)—文本过滤(正则表达式) grep 命令 –Linux Shell 脚本编程(6)—文本过滤(grep命令) find命令 –...
  • LINUX Shell脚本编程实例详解(一)上

    千次阅读 2018-08-22 10:32:37
    LINUX Shell脚本编程实例详解(一)上 ping命令测试网段内主机的2例详解 使用linux已经有10来年了但是一直止于各种服务器的搭建和环境的调优,能力不能得到提升,今天突然下定决心学习Shell脚本编程,因此以网上...
  • linux shell脚本执行错误:bad substitution 脚本test.sh内容:#!/bin/bash read pressKey indexes=0 c=${pressKey:indexes:1}使用调试方式执行:sh -x test.sh第3行总出现bad substitution提示信息,这与linux ...
  • 本文是Linux Shell脚本系列教程的第(十)篇,更多Linux Shell教程请看:Linux Shell脚本系列教程 基本任何语言都有自己的循环语句,Shell当然也不例外,继上一篇之后,今天就为大家介绍下Shell for循环的用法。 ...
  • Linux shell脚本获取服务器局域网IP地址 正确的命令如下: #!/bin/bash local_ip=$(ifconfig | grep '\<inet\>'| grep -v '127.0.0.1' | awk '{ print $2}' | awk 'NR==1') echo $local_ip shell变量要想获取...
  • Linux shell脚本按住任意键继续操作

    千次阅读 2018-09-27 11:56:02
    Linux shell脚本按住任意键继续操作   #!/bin/bash echo " 开始执行操作. ... " get_char() { SAVEDSTTY=`stty -g` stty -echo stty cbreak dd if=/dev/tty bs=1 count=1 2&gt; /dev/nu...
  • Linux Shell 脚本编程(5)—文本过滤(grep命令)文本过滤 正则表达式 Linux Shell 脚本编程(5)—文本过滤(正则表达式) grep 命令 Linux Shell 脚本编程(5)—文本过滤(grep命令) find awk sed 合并...
  • linux shell脚本 自动重启挂掉的jar包

    千次阅读 2019-03-01 18:05:04
    linux shell脚本 自动重启挂掉的jar包 monitor.sh #!/bin/bash # “#!” 是一个约定的标记,它告诉系统这个脚本需要什么解释器来执行 # 变量 jarName=wizops-alarm-server-1.0-SNAPSHOT.jar jarUrl=/data/solitasu...
  • Linux shell脚本中shift的用法说明

    千次阅读 2018-05-29 13:43:58
    Linux shell脚本中shift的用法说明shift命令用于对参数的移动(左移),通常用于在不知道传入参数个数的情况下依次遍历每个参数然后进行相应处理(常见于Linux中各种程序的启动脚本)。示例1:依次读取输入的参数并打印...
  • Linux shell脚本练习(九九乘法口诀表) 1,创建chengfa.sh脚本,写入运行脚本。 [root@localhost ~]# vim chengfa.sh #!/bin/bash for((i=1;i<=9;i++)) do for((n=1;n<=$i;n++)) do echo -n " $i x $n = ...
  • linux shell脚本监控进程崩溃自动重启

    千次阅读 2017-06-08 16:13:52
    linux shell脚本监控进程崩溃自动重启,由于目前有Python实现的通讯组件时不时会异常中断,在还没有找到问题的解决办法时先暂时用shell监控并自动重启处理。 # ! /bin/shbasepath=$(cd `dirname $0`; pwd)while true...
  • linuxshell脚本获取并进入当前目录

    万次阅读 2016-07-07 10:13:50
    linuxshell脚本获取并进入当前目录在linux的shell中经常需要进入脚本当前所在的目录,以其为基准使用相对路径,那么怎样获取到这个路径呢? linux的shell中并没有一个变量能直接代表这个路径,需要自己使用命令来...
  • Linux shell脚本执行Python脚本

    万次阅读 2017-04-17 16:14:10
    今天想做个定时器,用shell脚本执行Python脚本 shell 里面是这样写python main.py 之后就报错误 :No module named 看了一篇博客解决了问题: 使用Python的时候最好指定地址:/usr/local/bin/python2.7 main.py...
  • Linux shell脚本基础学习详细介绍(完整版)

    万次阅读 多人点赞 2017-10-19 11:41:37
    Linux shell脚本基础学习这里我们先来第一讲,介绍shell的语法基础,开头、注释、变量和 环境变量,向大家做一个基础的介绍,虽然不涉及具体东西,但是打好基础是以后学习轻松地前提。 1. Linux 脚本编写基础 ◆...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 42,231
精华内容 16,892
关键字:

linuxshell脚本

linux 订阅