【老李分享:《Linux Shell脚本攻略》 要点(二)】教程文章相关的互联网学习教程文章

linux – 用于进程监控的Shell脚本【代码】

这个#!/bin/bash if [ `ps -ef | grep "91.34.124.35" | grep -v grep | wc -l` -eq 0 ]; then sh home/asfd.sh; fi或这个?ps -ef | grep "91\.34\.124\.35" | grep -v grep > /dev/null if [ "$?" -ne "0" ] then sh home/asfd.sh else echo "Process is running fine" fi您好,如何编写一个查看正在运行的进程的shell脚本,如果没有进程名称CONTAINING 91.34.124.35,那么在某个地方执行一个文件,我想在连续循环中每隔30秒运行一次...

如何在Linux shell脚本或python中找出上周六的日期?【代码】

我有python脚本,我需要每天运行备份.现在我需要找到上个星期六的日期,因为我需要在我的脚本中获取我最后做的备份.假设 星期六我做了这个文件 weekly_user1_Jul-13-2013.sql 我想在我每天运行的脚本中获取该名称.所以对于在星期六运行的脚本我需要得到今天的日期,在星期天,然后我需要得到最后一个星期六的日期. 我怎样才能做到这一点解决方法: $date +"%b-%d-%Y" -d "last saturday" Jul-13-2013

“读取-p”在linux shell脚本中做了什么?【代码】

我有一个我复制和编辑过的脚本.如果可能的话,我需要解释几行. 这些是:read -p "please enter the username you wish to create: " usernameif id -u $username >/dev/null 2>&1; then读取-p有什么作用? id -u做什么?什么> / dev / null 2& 1;做?然后在脚本中,它有这一行说:sudo useradd -g $group -s $bash -d $homedir -m $username -p $password再次,请有人解释这一行中的所有减号吗? (-g,-s,-d,-m,-p)解决方法:首先,结构<...

linux – 在不使用“bc”的情况下计算Shell脚本中的舍入百分比【代码】

我正在尝试计算Shell脚本中某些项目的百分比.我想把这个值四舍五入,也就是说,如果结果是59.5,我应该期望60而不是59.item=30 total=70 percent=$((100*$item/$total))echo $percent这给了42. 但实际上,结果是42.8,我想把它四舍五入到43.“bc”可以解决问题,有没有办法不使用“bc”? 我无权安装任何新软件包.我的系统中没有“dc”和“bc”.它应该是纯粹的Shell,也不能使用perl或python脚本解决方法:使用AWK(没有bash-isms):item=30...

linux – 使用shell脚本从unix中的文件名中提取日期【代码】

我正在研究shell脚本.我想从文件名中提取日期. 文件名是:abcd_2014-05-20.tar.gz 我想从中提取日期:2014-05-20解决方法: echo abcd_2014-05-20.tar.gz |grep -Eo '[[:digit:]]{4}-[[:digit:]]{2}-[[:digit:]]{2}' 输出:2014-05-20grep作为echo stdin输入,或者如果文件中包含这些字符串,也可以使用cat命令. -E将PATTERN解释为扩展正则表达式. -o仅显示与PATTERN匹配的匹配行的一部分. [[:digit:]]它只从输入中获取数字. {...

linux – “$?”在shell脚本中给出了什么?【代码】

参见英文答案 > Meaning of $? (dollar question mark) in shell scripts 8个我看到代码写在网上的某个地方,我想知道究竟什么是“$?”做/给我们.谷歌搜索没有帮助. 这是我看到的代码:#!/bin/shping -c 2 localhost if [ $? != 0 ] ; thenecho "Couldn't ping localhost, weird"fiping -c 2 veryweirdhostname.noend if [ $? != 0 ] ; thenecho "Surprise, Couldn't ping a very weird hostn...

Linux Shell脚本 – 与通配符的字符串比较【代码】

我试图看看一个字符串是否是shell脚本中另一个字符串的一部分(#!bin / sh). 我现在的代码是:#!/bin/sh #Test scriptje to test string comparison!testFoo () {t1=$1t2=$2echo "t1: $t1 t2: $t2"if [ $t1 == "*$t2*" ]; thenecho "$t1 and $t2 are equal"fi }testFoo "bla1" "bla"我正在寻找的结果是,我想知道“bla1”中存在“bla”的时间. 谢谢和亲切的问候, 更新:我已经尝试了这里描述的“包含”功能:How do you tell if a s...

linux-shell脚本基础-2【代码】【图】

1,用户组 添加用户useradd-u UID-o -g 指定 GID或组名-c 注释信息-d 家目录-s shell -G 附加组-r 系统用户-m 家目录,系统用户-M 不创建家目录,非系统用户newusers file : 批量创建用户,需要事先准备好跟passwd格式一样的文件 chpasswd : 批量修改用户口令,文件格式:用户名:口令passwd -l : 锁定指定的用户-u : 解锁指定的用户-e :强制用户下次登录时修改密码 usermod-u UID-g GID-G 新附加组 -a -d ...

linux – 用于多线程处理进程的Shell脚本【代码】

我是一名生物信息学家,最近陷入了一个问题,需要一些脚本来加速我的过程.我们有一个名为PHASE和Command的软件,我在我的命令行输入以解雇软件./PHASE test.inp test.out其中PHASE是程序的名称,test.ip是输入文件,test.out是输出文件.它需要一个核心来运行上述过程,大约需要3个小时才能完成. 现在我有1000个输入文件说test1.inp,test2.inp,test3.inp …..等等到test1000.inp并希望生成所有1000个输出文件..test1.out,test2.out .. … ...

linux – 是否有可能使bash shell脚本与另一个命令行程序交互?【代码】

我在运行bash shell的Linux终端中使用交互式命令行程序.我有一个确定的命令序列,我输入到shell程序.程序将其输出写入标准输出.其中一个命令是’save’命令,它将上一个运行的命令的输出写入文件到磁盘. 典型的周期是:$prog $$cmdx $$<some output> $$save <filename> $$cmdy $$<again, some output> $$save <filename> $$q $<back to bash shell>> $是bash提示符> $$是程序的提示> q是prog的退出命令> prog是这样的,它将前一个命令...

linux – 解析shell脚本参数【代码】

$myscript.sh -host blah -user blah -pass blah我想把参数传递给它. 我习惯做1美元,2美元,3美元….但我想开始命名它们解决方法:sh中有很多方法可以解析参数. Getopt很好.这是一个简单的脚本,可以手动解析:#!/bin/sh # WARNING: see discussion and caveats below # this is extremely fragile and insecurewhile echo $1 | grep -q ^-; do# Evaluating a user entered string!# Red flags!!! Don't do thiseval $( echo $1 | se...

【Linux】shell脚本参数传递【代码】

这里介绍参数传递的两种方式。 方式一:$0,$1,$2... 采用$0,$1,$2..等方式获取脚本命令行传入的参数 $0:脚本名称 $1....: 参数 例子:#编写一个shell $ vim test.shecho "参数0参数为:"$0echo "参数1参数为:"$1echo "参数2参数为:"$2#执行shell传递两个参数 $ bash test.sh 我是参数1 我是参数2参数0参数为:test.sh参数1参数为:我是参数1参数2参数为:我是参数2方式二:getopts getopts引用的三个环境变量:OPTARG: 上一个由...

linux – shell脚本中的错误?【代码】

我正在尝试shell脚本中的代码.当我试图将代码从批处理脚本转换为shell脚本时,我收到一个错误. 批量文件代码:: Create a file with all latest snapshots FOR /F "tokens=5" %%a in (' ec2-describe-snapshots ^|find "SNAPSHOT" ^|sort /+64') do set "var=%%a" set "latestdate=%var:~0,10%" call ec2-describe-snapshots |find "SNAPSHOT"|sort /+64 |find "%latestdate%">"%EC2_HOME%\Working\SnapshotsLatest_%date-today%.t...

linux – Shell脚本,将命令值保存到变量中【代码】

我试图在同一行打印VARI的值后跟一个逗号,这样我就可以拥有这些值的csv文件,但我无法保存值 VARI =’cat filename |头-1 | cut -d,-f ${i}’i=0 while (( i<130)) ; doif [[ $i -eq 1 || $i -eq 9 || $i -eq 12 || $i -eq 23 || $i -eq 25 || $i -eq 29 ]]thenVARI = 'cat filename | head -1 | cut -d, -f${i}'echo "$VARI ," filet i=$i+1; done输出预期是4,abc,5,8,xyz,9请让我知道我做错了什么,谢谢!解决方法:使用反引号(...

linux – 如何使用特殊字符传递参数来调用shell脚本【代码】

使用如下所需的参数调用.sh(shell脚本): – sh home/example.sh --context_param dbUserName=username --context_param dbPassword=exam!ple##### --context_param resultDate=2017-01-13使用参数dbUsername和password调用example.sh但是出现以下错误: – -bash: !ple#####: event not found我认为特殊字符限制命令执行.然后我如何传递特殊字符.任何帮助都会很明显.解决方法:改变线,dbPassword=exam!ple#####至,dbPassword='exam...