【linux下使用smtp+shell脚本实现服务器存活状态监控】教程文章相关的互联网学习教程文章

linux – 更改目录在shell脚本中不起作用【代码】

我一直在改变linux中shell脚本中的目录.#!/bin/sh cd /driver以上内容不会更改目录.Shell正在自己的上下文中运行,因此无法为linux终端提供更改的驱动器(进入驱动程序) 但如果我给 cd / driver LS它在驱动程序目录中提供了正确的ls输出,这些输出又来自驱动程序目录 任何人都可以帮助我获得实际更改路径的终端(进入驱动程序).解决方法:如果您运行脚本 ./scriptname 您正在打开执行脚本命令的子shell.更改该子shell中的目录不会...

linux – Shell脚本 – 如果子节点无法执行,如何终止父节点【代码】

我有一个shell脚本(父),它调用其他一些shell脚本.假设子shell脚本无法执行,那么也应该停止父shell脚本而不执行下一个子shell脚本.如何自动完成此过程? 例如:main.sh //inside the main.sh following code is there child1.sh //executed successfully child2.sh //error occurred child3.sh //Skip this process //end of main.sh解决方法:最简单的机制是:set -e这意味着只要子进程以失败状态退出,shell就会退出,除非状态作为条...

linux – 在shell脚本中使用$ –【代码】

什么是$ – 在Unix中的使用.在我的系统中,输出是,$echo $- himBH $什么是他的意思?它代表什么. 提前致谢…解决方法:它返回当前shell的标志. $ – 变量包含终端中当前活动的shell标志.这些标志确定shell将如何为您运行.在您的情况下,这些标志具有以下含义(请注意,所有这些都是默认值): > h:“hashall”的缩写(读为“hash all”),这告诉bash记住它通过查询你发现的命令的位置路径.> i:“交互式”的缩写,这很好,因为这是一个shell...

linux – 后台shell脚本在ssh注销后无法访问目录,即使使用nohup也是如此【代码】

我想在服务器计算机的后台运行一个shell脚本,并从ssh连接启动该shell脚本.即使我使用nohup运行后台进程脚本,但只要我关闭ssh连接(并且不久),后台脚本就会因目录无法访问错误而失败. runInBackground.sh:#!/bin/bash ... nohup ./run.sh > /dev/null 2> local/errorLog.txt < /dev/null &run.sh:#!/bin/bash ... while [ true ] ; do...cd optaplanner-examplesmvn exec:exec // calls java processcd .. done所以当我运行runInBa...

linux之shell脚本

1) 如何向脚本传递参数 ? ./script argument 例子: 显示文件名称脚本?1 2 3 4./show.sh file1.txt cat show.sh #!/bin/bash echo $1(LCTT 译注:谢谢某匿名访客的提醒,原题有误,修改之。) 2) 如何在脚本中使用参数 ? 第一个参数 : $1,第二个参数 : $2 例子 : 脚本会复制文件(arg1) 到目标地址(arg2)?1 2 3 4./copy.sh file1.txt /tmp/ cat copy.sh #!/bin/bash cp $1 $23) 如何计算传递进来的参数 ? $# 4) 如何在脚本中获取脚...

linux – 如何在shell脚本中创建文件【代码】

我需要编写一个shell脚本,我从环境中读取一个变量.如果它指向的文件不存在,我想创建它. 此文件路径可能包含一些中间不存在的目录,因此也需要创建这些目录.所以mkdir -p既不适用于此,也不适用于简单的触摸. 解决方法是什么? 谢谢!解决方法: mkdir -p "`dirname $foo`" touch "$foo"dirname适用于任意路径;它不检查路径是否正在使用(文件是否存在).

linux – 如何将密码作为参数传递给shell脚本【代码】

我正在通过ansible-playbook自动安装鼠尾草.在那里我需要运行两个shell脚本.以下是第一个shell脚本的外观:#!/bin/bash # Creating Sage notebookdir="/root/.sage/sage_notebook.sagenb" screen -S "Sage_Server" sage -c 'notebook(interface="", directory=$dir, port=80, accounts=true)'这是第二个shell脚本的代码:#!/bin/bash # Creating Sage inotebookaddress=$(hostname --ip-address) sage -c "inotebook(interface=" "...

linux – 如何比较shell脚本中的两个浮点值【代码】

我不得不在shell脚本中进行划分,最好的方法是:result1=`echo "scale=3; ($var1 / $total) * 100"| bc -l` result2=`echo "scale=3; ($var2 / $total) * 100"| bc -l`但我想比较$result1和$result2的值 使用if test $result1 -lt $result2或者如果[$result1 -gt $result2]不起作用:( 知道怎么做吗?解决方法:您可以使用expr(1)比较浮点数:: nr@yorkie 3724 ; expr 3.1 '<' 3.3 1 : nr@yorkie 3725 ; expr 3.1 '<' 3.09 0您还可以让...

linux shell脚本中的开头#!/bin/bash的含义【代码】

对于linux上需要执行 的shell脚本,通常第一行的内容是#!/bin/bash当然有很多时候不规范的写法可以忽略掉这一句,执行起来好像也是ok,结果没什么不一样 。。 这只是因为在我们常用 的linux系统上默认都是执行/bin/bash来执行我们的shell脚本,但是如果有些用户使用的是csh,那么缺少第一行的“#!/bin/bash的shell脚本执行结果就可能存在语法不兼容的问题,导致结果异常或者根本不能执行。 Shell脚本和我们常用的C语言或者C++语言...

linux – 通过putty.exe在Windows命令行上运行shell脚本(带参数)【代码】

我需要执行一个批处理脚本,它在Linux框内远程运行shell脚本. 现在,一切正常,但如果我尝试向shell脚本提供命令行参数,脚本将无法执行. 工作 – >前C:\temp\Testing>putty.exe -pw “blabla” -m “test-script.sh”bob@10.20.110.57但是,如果我试图提供参数,它就无法执行.例: 不工作C:\temp\Testing>putty.exe -pw “blabla” -m “test-script.sh ok-1”bob@10.20.110.57where ok-1 = command line argument for local script tes...

linux – 从while循环中退出shell脚本【代码】

我正在写一个简单的shell脚本,如果在文件中找到输入字符串,则应该以0退出,如果不是,则退出1INPSTR=$1cat ~/file.txt | while read line doif [[ $line == *$INPSTR* ]]; thenexit 0fi done#string not found exit 1实际发生的是当找到字符串时,循环退出,然后shell进入“退出1”.在循环中完全退出shell脚本的正确方法是什么?解决方法:你可以使用$捕获子shell的返回码吗?像这样INPSTR=$1 cat ~/file.txt | while read line do if [...

linux – Shell脚本shell里面的shell【代码】

我想连接到不同的shell(csh,ksh等),并在每个切换的shell中执行命令. 以下是反映我意图的示例程序:#!/bin/bash echo $SHELL csh echo $SHELL exit ksh echo $SHELL exit既然,我不熟悉Shell脚本需要一个如何实现这一点的指针.任何帮助将非常感激.解决方法:如果只想执行一个命令,可以使用-c选项csh -c 'echo $SHELL' ksh -c 'echo $SHELL'如果要在子shell中执行多个命令甚至整个脚本,可以使用bash的here-document功能并在子shell上使...

linux基础—课堂随笔_03 SHELL脚本编程基础【代码】

shell脚本编程基础 条件选择:if语句 选择执行: 注意:if语句可嵌套 单分支 if(开头)判断条件;then条件为真的分支代码 fi(结尾) 双分支 if(开头)判断条件;then条件为真的分支代码 else:其他条件为假的分支代码 fi(结尾) 多分支 输入年龄显示相对应设置的shell脚本:read -p "Please input yourage: " AGE if [[ ! $AGE =~ ^[0-9]+$ ]];then echo "$AGE is not a digit" exit elif [ $AGE -lt 18 ];then echo "s...

Linux上shell脚本date的用法【代码】

参数:%% 一个文字的 % %a 当前locale 的星期名缩写(例如: 日,代表星期日) %A 当前locale 的星期名全称 (如:星期日) %b 当前locale 的月名缩写 (如:一,代表一月) %B 当前locale 的月名全称 (如:一月) %c 当前locale 的日期和时间 (如:2005年3月3日 星期四 23:05:25) %C 世纪;比如 %Y,通常为省略当前年份的后两位数字(例如:20) %d 按月计的日期(例如:01) %D 按月计的日期;等于%m/%d/%y %e ...

分享一个linux中测试网站是否正常的shell脚本

#! /bin/bash #Author=Harry CheckUrl() { #<==定义函数,名字为CheckUrltimeout=5 #<==定义wget访问的超时时间,超时就退出fails=0 #<==初始化访问网站失败的次数记录变量,若失败达到两次,就发邮件报警success=0 #<==初始化访问网站成功的次数记录变量,若为1,则表示成功,退出脚本while truedowget --timeout=$timeout --tries=://192.168.1.99/harry -q -O /dev/null#<==使用wget测试访问if [ $? -ne 0 ] #<==如果上述...