【linux – bash脚本和zsh shell中的数组行为(开始索引0或1?)】教程文章相关的互联网学习教程文章

linux – 使用mailx和bash脚本解析邮件的正文【代码】

我试图使用电子邮件自动化我的工作的某些部分.是否有任何方法已经可以使用mailx和bash我可以用来提取邮件的正文?解决方法:如果这是通过类似sendmail的MTA传递到本地用户帐户的邮件,那么您可以使用procmail在发送邮件时对其进行解析. 在我使用的系统上,sendmail会检查?/ .forward文件,所以我在~username / .forward中有这个# pipe incoming mail to procmail # ref: http://www.panix.com/~elflord/unix/procmail.html # ref: http...

linux – 将whatis钩子添加到bash脚本中【代码】

我刚刚发现了whatis并希望在我的bash脚本中添加信息. 将信息添加到bash脚本中的最佳方法是什么?whatis捡起?解决方法:whatis从whatis数据库获取所有信息,这是使用命令makewhatis生成的. 有两种方法可以将条目添加到数据库中. >创建并安装程序或脚本的手册页,然后运行makewhatis.>手动编辑whatis数据库.(不建议) makewhatis从命令手册页的NAME部分获取第一行. whatis数据库在我的机器上的位置是/usr/share / man / whatis,这是它??...

linux – 在读取(stdin)循环后暂停bash脚本【代码】

我正在创建一个通过管道(stdin)获取输入的脚本,如(other_command | my_script).但是,在我读完整个标准输入后,我需要暂停脚本并等待用户按下回车键. 这是一个示例脚本.#!/bin/bashif [[ -t 0 ]]; thenecho "No stdin" elseecho "Got stdin"while read input; doecho $inputdone fiecho "Press enter to exit" read它就是这样的;$echo text | ./script Got stdin text Press enter to exit $它跳过我最后的阅读. 然而;$./script No s...

linux – 如何从另一个shell向bash脚本发送信号【代码】

我启动以下脚本,我在前台运行bash shell(比如说shell1),从另一个shell(shell2)运行kill -SIGUSR1 pidof(scriptA).什么都没发生.我究竟做错了什么 ?我尝试了其他信号(SIGQUIT等)但结果是一样的. test_trap.shfunction iAmDone { echo "Trapped Signal"; exit 0 } trap iAmDone SIGUSR1 echo "Running... " tail -f /dev/null # Do nothing在shell1中./test_trap.sh在shell2中kill -SIGUSR1 ps aux | grep [t]est_trap | awk '{p...

linux – Bash脚本:不使用$@或$*扩展参数【代码】

使用$@,您可以对bash中的文件列表执行操作.例: script.sh:#!/bin/bash list=$@ for file in $list; do _commands_; done然后我可以用这个程序调用~/path/to/./script dir1/{subdir1/*.dat,subdir2/*}这个参数将扩展为许多成为$list的参数.但现在我想要其他参数,比如1美元,2美元,这个名单是3美元.所以我想在脚本中发生dir1 / {subdir1 / * .dat,subdir2 / *}的扩展,而不是成为很多参数.在命令行上,您可以执行以下操作:find dir1/...

linux – 在bash脚本中实现find的简单版本【代码】

我有一项任务,要求我创建一个可以采用这些参数的find版本: > -name(处理名称的模式)> -type(f和d)> -print> -exec(并且能够处理{},尽管如果存在exec,您可以假设它始终是最后一个参数,不需要用分号终止. 它还声明“谓词可以以任何顺序出现,并且隐式短路并在一起.不要处理-o(OR).”我也不允许在我的脚本中使用find. 因此,示例输入将如下所示:myfind ~/dirtocheck/ -name '*.o' -type f -print -exec /bin/mv {} ~/.TRASH\;关于如何...

linux – Bash:如何让脚本重新运行作为后台任务?【代码】

我正在编写一个旨在用作守护进程的Bash脚本.如果我的脚本的用户没有向脚本传递–sync选项,我希望脚本使用该选项将其自身重新运行为后台任务.这是我的代码(最后一部分是从this SO post被盗):#!/usr/bin/env bashargs=("$@") # capture them here so we can use them if --sync's not passed async=truewhile [ $# -gt 0 ] docase "$1" in--sync)async=false;;# other optionsesacshift done# if --sync isn't passed, rerun the sc...

linux – bash脚本和zsh shell中的数组行为(开始索引0或1?)【代码】

我需要阐述shell脚本中数组的以下行为: 想象一下,给出以下内容:arber@host ~> ls fileA fileB script.sh现在我可以执行以下命令:arber@host ~> ARR=($(ls -d file*)) arber@host ~> echo ${ARR[0]} # start index 0arber@host ~> echo ${ARR[1]} # start index 1 fileA arber@host ~> echo ${ARR[2]} # start index 2 fileB但是当我通过script.sh执行此操作时,它的行为会有所不同(Start Index = 0):...

linux – 如何在bash脚本中创建一个使用箭头进行导航的界面?

我一直在使用大量的脚本而且我已经厌倦了总是在终端中键入命令,所以我想写一些用户界面.想象“aptitude”之类的东西,通过像“top”这样的循环进行实时更新.这是一个VPS,所以我不能图形化. 我需要的只是简单的菜单,在箭头等物品之间移动.有没有一个很好的教程,甚至可以使用bash? 在此先感谢您的时间.解决方法:看看dialog命令.它允许您创建可以处理键盘(甚至鼠标)输入的可视UI小部件. 您可以选择创建输入框,菜单,文本框,复选框等等....

linux – Bash脚本 – 将子脚本stderr重定向到父级的stdout【代码】

我确定我遗漏了一些简单的东西,但我正在使用一个执行脚本来调用一些实用程序脚本,我想通过一个管道处理来自实用程序的所有输出.我的问题是实用程序使用stderr报告错误情况,但我无法捕获它以在父脚本中使用. 父脚本:#!/bin/bash child 2>&1 >/dev/null儿童剧本#!/bin/bash echo "Print" echo "Error" 1>&2我期望的是,孩子的stderr(以及它的所有命令)被重定向到stdout(因此没有输出),但是当我执行parent时,我得到错误echo’d到终端(...

linux – History命令在终端中工作,但在写为bash脚本时不起作用【代码】

我有一个简单的单线程在终端中完美运行:history | sort -k2 | uniq -c --skip-fields=1 | sort -r -g | head它的作用:最近给出了用户最常用的10个命令. (别问我为什么要做这样的事情) 我启动一个编辑器并在开头用#!/ bin / bash键入相同的内容:#!/bin/bash history | sort -k2 | uniq -c --skip-fields=1 | sort -r -g | head并说我将其保存为script.sh.然后,当我去同一个终端时,键入bash script.sh并按Enter键,没有任何反应. ...

Linux Bash脚本和Mongo【代码】

我有一个bash脚本来检查MongoDB数据库并在满足某些条件时发送电子邮件. Mongo为您提供了返回值的–eval选项.但相反,有类似的东西: ALERT = TRUE | FALSE 我有: ALERT = MongoDB shell版本:2.6.1#!/bin/bashecho "WatchDog Jerry"ALERT=$(mongo ob --eval 'var now = new Date().getTime(), alert = false; db.sess.find().forEach(function(sess){ var delay = 1 * 60 * 1000; var ts = sess.ts.toNumber(); if((now - ts) > de...

linux – bash脚本替换文件中出现的所有占位符【代码】

我正在尝试编写一个bash脚本,用一个同名环境变量替换文件中所有出现的占位符.举个例子,如果我有一个像下面这样的文件……This is an {{VAR1}} {{VAR2}}. It should work across multiple lines in this {{VAR2}}.…我设置了以下环境变量:VAR1='example' VAR2='file'在我的文件上运行脚本后,我应该得到输出:This is an example file. It should work across multiple lines in this file.我确定必须有一个使用awk / sed的解决方案...

linux – 在Bash脚本中解析命令输出【代码】

我想运行一个命令,提供以下输出并解析它:[VDB VIEW] [VDB] vhctest[BACKEND] domain.computername: ENABLED:RW:CONSISTENT[BACKEND] domain.computername: ENABLED:RW:CONSISTENT...我只对一些关键作品感兴趣,例如’ENABLED’等.我不能只搜索ENABLED,因为我需要一次解析每一行. 这是我的第一个脚本,我想知道是否有人可以帮助我? 编辑:我现在有:cmdout=`mycommand`while read -r line do#check for key words in $line done < $...

linux – 检查从同一bash脚本启动的后台进程的运行状态【代码】

我必须编写一个bash脚本,根据传递的命令行参数在后台启动进程,如果成功运行启动程序则返回. 这是我想要实现的伪代码if [ "$1" = "PROG_1" ] ; then./launchProg1 &if [ isLaunchSuccess ] ; thenecho "Success"elseecho "failed"exit 1fi elif [ "$1" = "PROG_2" ] ; then./launchProg2 &if [ isLaunchSuccess ] ; thenecho "Success"elseecho "failed"exit 1fi fi脚本不能等待或睡眠,因为它将由另一个关键任务c程序调用,并且需要高...