校园春色亚洲色图_亚洲视频分类_中文字幕精品一区二区精品_麻豆一区区三区四区产品精品蜜桃

主頁 > 知識庫 > linux shell腳本對未定義變量的判斷以及if的用法詳解

linux shell腳本對未定義變量的判斷以及if的用法詳解

熱門標簽:同花順電話機器人微信 輝縣市地圖標注 房產證地圖標注的兩個面積 湖北孝感如何辦理 威海電銷外呼系統好用嗎 武漢語音電銷機器人加盟 地圖標注x是啥意思 外呼系統的合法性 北京電銷機器人對市場的影響

環境

操作系統:win10

虛擬機:centos7

需求

因為公司有個腳本,是用于啟動程序的,但是每次啟動都要手動做如下兩個操作:

①先查詢之前的進程ID

②殺死之前的,在啟動新了

時間長了弄得我很煩躁,所以就琢磨下,把上面的的操作一起整合到啟動腳本里去。

最開始我是這么寫的:

#!/bin/bash
echo "ggjob-search..."
pid=`ps -ef|grep -w ggjob-search|grep -v grep|grep -v ggjob-search.sh|awk '{printf $2}'`
echo "having kill pid:$pid"
kill -9 $pid
nohup java -Djava.ext.dirs=lib -Xms500m -Xmx500m -Dlog4j.configuration=file:/home/webuser/gogoal_platform/ggjob/config/log4j.properties -jar ggjob-search.jar config/config.properties 2>1 >>/dev/null 
echo "new pid:$!"

執行了一下,OK

結果:

ggjob-search...
having kill pid:7018
new pid:7209

假設進程早已手動殺死,在執行上面的腳本:

結果提示:

kill: usage: kill [-s sigspec | -n signum | -sigspec] pid | jobspec ... or kill -l [sigspec]

雖然不影響后面的命令,依然啟動了程序。但是總是報這個也不好看。

所以我打算加上if判斷

shell if寫法

if空格[空格判斷表達式空格];then
else
fi

對未定義變量的判斷

舉個例子:

if [ "x${pid}" != "x" ];then
echo "說明pid變量不為空"
else
echo "變量pid為空或未定義"
fi

特別注意上面if那一行是沒有一個多余的空格;也就是說,空格是必須的,否則會報語法錯誤。

最后我調整后的腳本為:

#!/bin/bash
echo "ggjob-search..."
pid=`ps -ef|grep -w ggjob-search|grep -v grep|grep -v ggjob-search.sh|awk '{printf $2}'`
if [ "X${pid}" != "X" ];then
echo "having kill pid:$pid"
kill -9 $pid
fi
nohup java -Djava.ext.dirs=lib -Xms500m -Xmx500m -Dlog4j.configuration=file:/home/webuser/gogoal_platform/ggjob/config/log4j.properties -jar ggjob-search.jar config/config.properties 2>1 >>/dev/null 
echo "new pid:$!"

簡單講解:

①先執行ps -ef|grep -w ggjob-search|grep -v grep|grep -v ggjob-search.sh|awk '{printf $2}',找到我們要殺死的進程ID并賦值給變量pid。

②進行判斷,要是進程沒有被殺死,就執行kill -9,進行強制殺死進程操作。

③后臺啟動程序(我這里是啟動jar包),最后打印啟動的新ID。

注意:由于我的腳本名和查詢進程名類似,所以grep取反時,也要把腳本本身臨時啟動的進程ID過濾掉。

這里也貼出網上收集的一些小技巧:

判斷變量a為空最好的方法是:[ -z string ] [ -n string ]
# 這種方式
if [ -z $a ];then
echo "${LINENO} a is null"
fi
# -z 如果string長度為零,則為真
# -n 如果string長度非零,則為真

經過我大量測試:

上面的對未定義變量的判斷也可以這么寫:

# 經過我的測試使用-n 不能判斷未定義變量
if [ ! -z ${pid} ];then
echo "說明pid變量不為空"
else
echo "變量pid為空或未定義"
fi

這是不是說明:未定義變量,使用-n判斷時,其string長度不為空,使用-z做判斷時,其string長度為空。(我也不確定)

運算符 描述 示例
-e filename 如果filename存在,則為真 [ -e /etc/profile ]
-d filename 如果filename為目錄,則為真 [ -d /tmp/mydir ]
-f filename 如果filename為常規文件,則為真 [ -f /usr/bin/grep ]

不一一列舉了!

以上這篇linux shell腳本對未定義變量的判斷以及if的用法詳解就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持腳本之家。

您可能感興趣的文章:
  • Linux shell條件判斷if中的-a到-z的意思【推薦】
  • Shell中if的基本語法和常見判斷用法
  • Shell腳本IF條件判斷和判斷條件總結
  • Linux shell腳本編程if語句的使用方法(條件判斷)
  • linux shell中if的各種判斷

標簽:武威 西寧 迪慶 日喀則 紹興 麗江 蚌埠 安康

巨人網絡通訊聲明:本文標題《linux shell腳本對未定義變量的判斷以及if的用法詳解》,本文關鍵詞  linux,shell,腳本,對,未定義,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《linux shell腳本對未定義變量的判斷以及if的用法詳解》相關的同類信息!
  • 本頁收集關于linux shell腳本對未定義變量的判斷以及if的用法詳解的相關信息資訊供網民參考!
  • 推薦文章
    校园春色亚洲色图_亚洲视频分类_中文字幕精品一区二区精品_麻豆一区区三区四区产品精品蜜桃
    不卡的电视剧免费网站有什么| 欧美一区二视频| 欧美三级视频在线播放| 精品国产乱码久久久久久牛牛| 国产精品国产三级国产aⅴ中文| 日产国产欧美视频一区精品| av一区二区久久| 精品美女在线播放| 图片区小说区区亚洲影院| 丰满放荡岳乱妇91ww| 日韩一区二区电影| 亚洲制服丝袜av| 99re免费视频精品全部| 久久久精品综合| 狠狠色狠狠色综合日日91app| 欧洲中文字幕精品| 日韩毛片在线免费观看| 丁香网亚洲国际| 国产午夜三级一区二区三| 免费观看成人鲁鲁鲁鲁鲁视频| 91成人网在线| 亚洲另类春色国产| 大胆欧美人体老妇| 久久影院午夜片一区| 秋霞电影网一区二区| 欧美精品一二三四| 亚洲成av人**亚洲成av**| 色嗨嗨av一区二区三区| 亚洲精选视频免费看| k8久久久一区二区三区| 中文字幕在线视频一区| av在线一区二区三区| 国产精品三级av在线播放| 国产成人精品三级麻豆| 国产欧美日韩视频在线观看| 国产成人精品影院| 国产精品福利av| av亚洲精华国产精华| 综合激情成人伊人| 色综合久久综合网欧美综合网 | 日韩欧美成人激情| 男男成人高潮片免费网站| 日韩一级二级三级| 国产呦精品一区二区三区网站| 精品国产一区二区三区久久久蜜月 | 亚洲第一av色| 欧美精品亚洲一区二区在线播放| 亚洲成a人片在线不卡一二三区| 欧美性生活一区| 奇米精品一区二区三区在线观看一| 欧美久久一二区| 国产综合一区二区| 国产精品久线观看视频| 在线一区二区三区四区五区| 亚洲成人激情综合网| 日韩精品一区二区三区在线播放| 国产一区二区在线观看视频| 中文字幕乱码一区二区免费| 91蜜桃视频在线| 美脚の诱脚舐め脚责91| 国产欧美在线观看一区| 欧美午夜精品一区二区三区| 美女mm1313爽爽久久久蜜臀| 欧美国产精品v| 欧美日韩在线精品一区二区三区激情| 亚洲一卡二卡三卡四卡五卡| 精品久久久久久久人人人人传媒| 成人av在线资源网| 婷婷激情综合网| 国产精品少妇自拍| 91精品国产综合久久蜜臀| 国产精品一区二区久激情瑜伽 | 天天综合色天天| 国产三级精品视频| 欧美精品色一区二区三区| 国产乱子伦视频一区二区三区 | av在线不卡免费看| 免费成人在线视频观看| 国产精品午夜电影| 欧美一区永久视频免费观看| av电影在线观看完整版一区二区| 日韩电影在线一区| 亚洲欧美日本在线| 欧美精品一区二区三区视频| 欧美色综合影院| 国产iv一区二区三区| 男男gaygay亚洲| 亚洲高清免费观看高清完整版在线观看 | 日韩精品一二三四| 亚洲精品自拍动漫在线| 欧美激情综合五月色丁香小说| 51午夜精品国产| 欧美午夜精品久久久| 高清不卡一二三区| 九九视频精品免费| 日韩精品成人一区二区在线| 自拍偷拍国产亚洲| 欧美极品美女视频| 久久影院电视剧免费观看| 91精品国产91综合久久蜜臀| 91国偷自产一区二区使用方法| 国产呦精品一区二区三区网站| 天堂av在线一区| 亚洲成人av电影| 亚洲在线视频一区| 亚洲成av人在线观看| 亚洲男人的天堂网| 中文字幕亚洲视频| 中文字幕视频一区| 国产精品家庭影院| 国产精品私人自拍| 日韩久久一区二区| 综合婷婷亚洲小说| 亚洲美女一区二区三区| 亚洲精品国产a| 亚洲影院理伦片| 亚洲电影一区二区| 亚洲成av人在线观看| 婷婷开心激情综合| 日本不卡视频在线观看| 免费人成精品欧美精品| 久久99热国产| 高清久久久久久| 99久久国产综合精品色伊| 色综合中文字幕国产| 成人av电影观看| 色欧美乱欧美15图片| 欧美性淫爽ww久久久久无| 91麻豆精品久久久久蜜臀 | 久久一区二区三区四区| 亚洲精品一区二区三区精华液| 精品国产乱码久久久久久闺蜜| 精品国产一区二区精华| 亚洲国产精品精华液ab| 综合欧美亚洲日本| 婷婷成人激情在线网| 狠狠色综合播放一区二区| 成人黄页毛片网站| 欧美日韩在线免费视频| 精品1区2区在线观看| 亚洲欧洲在线观看av| 亚洲电影你懂得| 老司机精品视频在线| 大胆亚洲人体视频| 欧美色老头old∨ideo| 欧美xfplay| 综合久久综合久久| 免播放器亚洲一区| 成人中文字幕合集| 欧美性生活影院| 国产夜色精品一区二区av| 成人免费在线观看入口| 爽爽淫人综合网网站| 国产69精品久久久久毛片 | 精品国产在天天线2019| 中文字幕日韩一区二区| 免费成人av在线播放| youjizz久久| 久久久99精品久久| 亚洲一区二区三区激情| 国产不卡高清在线观看视频| 在线观看av不卡| 欧美韩日一区二区三区| 日韩福利电影在线| 色婷婷久久综合| 国产亚洲1区2区3区| 舔着乳尖日韩一区| 色综合咪咪久久| 国产网站一区二区三区| 日韩av一级片| 欧美影院午夜播放| 国产精品少妇自拍| 狠狠色丁香婷综合久久| 欧美色中文字幕| 综合精品久久久| 成人午夜视频在线观看| 日韩免费看网站| 丝袜亚洲精品中文字幕一区| 91污片在线观看| 国产精品全国免费观看高清 | 亚洲国产aⅴ成人精品无吗| 国产不卡免费视频| 久久视频一区二区| 麻豆国产精品视频| 欧美一个色资源| 视频一区国产视频| 欧美三级乱人伦电影| 一区二区三区在线免费播放| gogo大胆日本视频一区| 国产日韩欧美高清在线| 韩国理伦片一区二区三区在线播放| 欧美三级电影网| 无码av中文一区二区三区桃花岛| 91精品福利视频| 亚洲一区二区三区四区在线| 91久久精品国产91性色tv| 一区二区在线电影| 欧美唯美清纯偷拍| 亚洲成精国产精品女| 欧美精品三级日韩久久|