linux shell脚本问题,急求

问题描述

linux shell脚本问题,急求

#!/bin/bash

        SERNAME=$1

  kill_process() {

  PID=$(ps -ef | grep $SERNAME | grep -v 'grep' | awk '{print $2}')
 echo $PID
 kill -9 $PID
 sleep 2
 }

 kill_process

    这上边的脚本命名为a.sh,我在执行时是  a.sh server1,但会出错,不是报错,是杀错进程,一般显示:
    1234 1234
    killed

    如果不用参数执行,直接 PID=$(ps -ef | grep server1 | grep -v 'grep' | awk '{print $2}')
    就不会出错,一般执行完毕后什么都不显示,但进程会杀掉
这是怎么回事??

解决方案

Linux shell脚本
linux shell脚本犯错
Linux shell脚本——if运算例子

解决方案二:

 PID=$(ps -ef | grep $SERNAME | grep -v 'grep' | awk '{print $2}')

改成
PID=$(ps -ef | grep $SERNAME | grep -v 'grep' | grep -v 'a.sh' | awk '{print $2}')
试试(a.sh换成你实际执行的脚本名字)

时间: 2024-09-10 11:12:52

linux shell脚本问题,急求的相关文章

linux shell脚本问题,关于自动修改系统密码

问题描述 linux shell脚本问题,关于自动修改系统密码 操作系统 radhat 就是多个服务器每天就要进行一次密码修改,所以在想能不能用shell写一个命令脚本,然后放在一台服务器上面,等到需要修改密码的时候,就修改脚本里面的日期参数进行跑脚本修改,求大神帮助,新手,也可沾些代码我学习一下,不适合的地方,我自己改改. 解决方案 用crontabhttp://www.cnblogs.com/kaituorensheng/p/4494321.htmlhttp://os.51cto.com/a

linux shell 脚本 代码的执行

问题描述 linux shell 脚本 代码的执行 1) if kill -0 cat $pid > /dev/null 2>&1; then 2) echo $command running as process 3) cat $pid.Stop it first. 4) exit 1 5) fi 求解1)是什么意思怎么执行, 不知道是 (1) tmp0 = cat $pid 其中的值,在执行 (2) tmp1=kill -0 tmp0 (3) tmp2=tmp1> /dev/

Linux shell脚本基础学习详细介绍(完整版)

Linux shell脚本基础学习这里我们先来第一讲,介绍shell的语法基础,开头.注释.变量和 环境变量,向大家做一个基础的介绍,虽然不涉及具体东西,但是打好基础是以后学习轻松地前提. 1. Linux 脚本编写基础 ◆1.1 语法基本介绍1.1.1 开头 程序必须以下面的行开始(必须方在文件的第一行): #!/bin/sh 符号#!用来告诉系统它后面的参数是用来执行该文件的程序.在这个例子中我们使用/bin/sh来执行程序. 当编辑好脚本时,如果要执行该脚本,还必须使其可执行. 要使脚本可

Linux Shell脚本查看NUMA信息

  这篇文章主要介绍了Linux Shell脚本查看NUMA信息,本文直接给出脚本实现代码,需要的朋友可以参考下 Nova在NFV场景下会提供NUMA相关高级特性,这里提供一个脚本查看计算节点的NUMA相关信息. ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50

Linux Shell脚本系列教程(一):Shell入门

  这篇文章主要介绍了Linux Shell脚本系列教程(一):Shell入门,本文讲解了Shell简介.Shell基本操作.如何打开Shell终端.Shell脚本的概念.如何运行Shell脚本.Shell脚本的注释等基础知识,需要的朋友可以参考下 一.Shell简介 诸多类Unix操作系统的设计令人惊叹.即便是在数十年后的今天,Unix式的操作系统架构仍是有史以来最佳的设计之一.这种架构最重要的一个特性就是命令行界面或者shell.shell环境使得用户能与操作系统的核心功能进行交互.术语脚本

Linux Shell脚本系列教程(二):终端打印命令详解

  这篇文章主要介绍了Linux Shell脚本系列教程(二):终端打印命令详解,本文着重讲解了echo终端打印.printf终端打印两个打印出输出命令,需要的朋友可以参考下 终端打印 终端是交互式工具,用户可以通过它与shell环境进行交互.在终端中打印文本是大多数shell脚本和工具日常需要执行的基本任务.通过终端打印,人们可以知道系统的运行状态,这对用户来说是至关重要的. echo终端打印 代码如下: echo "Welcome to Bash" echo 'Welcome to

Linux Shell脚本系列教程(三):变量和环境变量

  这篇文章主要介绍了Linux Shell脚本系列教程(三):变量和环境变量,本文讲解了普通变量.获取字符串的长度.环境变量等内容,需要的朋友可以参考下 一.玩转变量和环境变量 变量是任何一种编程语言都必不可少的组成部分,用于存放各种类型的变量.脚本语言大多是弱类型语言(动态语言),也就是说在使用变量时,不需要事先声明变量的类型,只需要直接赋值就可以.在Bash中,每一个变量的值都是字符串.无论你给变量赋值时有没有使用引号,值都会以字符串的形式存储.有一些特殊的变量会被shell环境和操作系统

Linux Shell脚本系列教程(四):使用函数添加环境变量

  这篇文章主要介绍了Linux Shell脚本系列教程(四):使用函数添加环境变量,本文对环境变量的一知识作了介绍,并给出普通添加环境变量和使用函数添加环境变量的方法,需要的朋友可以参考下 一.简介 环境变量通常用于存储路径列表,这些路径用于搜索可执行文件.库文件等.例如:$PATH.$LD_LIBRARY_PATH,它们通常看起来像这样: 代码如下: PATH=/usr/bin;bin LD_LIBRARY_PATH=/usr/lib;lib 这意味着只要shell需要运行二进制可执行文件时

Linux Shell脚本系列教程(五):数学运算

  这篇文章主要介绍了Linux Shell脚本系列教程(五):数学运算,本文讲解了使用let.(())和[]进行算术运算.使用expr进行算术运算.使用bc进行算术运算三种方法,需要的朋友可以参考下 在任何一种编程语言中,算术运算都是必不可少的,shell也不例外. 一. 使用let.(())和[]进行算术运算 可以使用普通变量赋值方法定义数值,这是,它会被保存为字符串.我们可以通过使用let.(()).[]等操作符,使得这些变量进行算术运算.例如: 代码如下: #!/bin/bash no1