【Linux-在gnome-terminal -x中运行bash函数】教程文章相关的互联网学习教程文章

linux – 在另一个比较中使用bash比较的结果【代码】

我想在随后的比较中使用比较结果.我正在尝试做类似的事情:# $1 - expected result # $2 - actual result function print_result() {if [[ [[ $1 -eq 0 ]] -eq [[ $2 -eq 0 ]] ]]; then # invalidecho "Pass"elseecho "Fail"fi }我可以用更详细的形式获得所需的行为:function print_result() {if [[ (($1 -eq 0) && ($2 -eq 0)) || (($1 -ne 0) && ($2 -ne 0)) ]]; then echo "Pass"elseecho "Fail"fi }但似乎应该有一个更简单的...

linux – Bash选项卡在参数后完成文件名【代码】

我最近从Scientific Linux 6转移到CentOS 7,并且在新操作系统中遇到了bash选项卡完成的问题. 软件版本$cat /etc/redhat-release CentOS Linux release 7.1.1503 (Core)$uname -r 3.10.0-229.14.1.el7.x86_64$bash --version GNU bash, version 4.2.46(1)-release (x86_64-redhat-linux-gnu)我有一个名为./run_prog.sh的bash脚本(可执行文件),它使用-c选项(或long –config =)在命令行上获取配置文件. 完整命令示例:./run_prog.sh ...

linux – 为什么有人会使用echo为bash或ksh中的变量赋值?【代码】

最近我遇到了一个不寻常的echo用来在客户端的ksh脚本中分配变量. 例如,有许多实例,例如以下a='something' b='else' c=`echo "${a} ${b}"`我一直无法想出有人可能做到这一点的任何理由. 可能有一些遗留的原因吗?(我已经做了30年的壳,从来没有见过这个) 还是只是无知?解决方法:无论是在当前的bash还是其POSIX sh或Bourne前辈中,都没有令人信服的理由.c="$a $b"…是给出的代码的完全替代,并且运行得更快(尝试将其置于循环中;命令替换...

linux – 使用bash捕获交互式程序的输出和输入【代码】

我正在使用bash自动化交互式命令行Java程序来验证程序是否为输入生成了正确的输出(基本上是穷人在bash中的单元测试). 例如,如果我有一个java程序要求用户输入他们的全名,然后只输出他们的名字,它应该是这样的:Enter your name: John Doe John用户输入“John Doe”的地方. 运行此命令的简单bash命令可能如下所示:OUTPUT=`echo "John Doe" | java NameReader`要么OUTPUT=`java NameReader <<< "John Doe"`这两个问题都是$OUTPUT现在...

linux – Bash中select()系统调用的等价物

在我的脚本中,我试图从几个串口读取数据以协调多个设备. 我可以使用exec 9< / dev / ttyACM0&&& exec 8< / dev / ttyACM1等我正在跳跃,然后我可以对这些文件描述符执行类似select()的操作以等待数据到达,然后使用读取0<& 9或读取0< 8取决于哪一个已接收数据来处理它.不幸的是我找不到Bash的select()等价物. 我能找到的最接近的是使用read -t 0 0<& 9来轮询要读取的数据.我不喜欢这个,因为它需要睡眠以防止脚本消耗100%的处理器.虽...

linux – Bash:杀死子进程中的所有进程【代码】

在bash中,我可以通过$获取最后一个子进程的进程ID(pid)!变量.然后我可以在它完成之前终止这个子进程:(sleep 5) & pid=$! kill -9 $pid这与广告一样有效.如果我现在在睡眠后使用更多命令扩展子进程,则在子进程被终止后,sleep命令会继续,即使其他命令永远不会被执行. 作为一个例子,考虑以下内容,它使用ps来旋转子进程并监视其暗杀:# Start subprocess and get its pid (sleep 5; echo done) & pid=$!# grep for subprocess echo "...

linux – bash提示符不显示该行的开头【代码】

我的shell提示用<替换长行的开头.如何在多条线上显示长线?user@machine:~$ <s line is a very long one and the beggining is not visible...解决方法:检查你的inputrchorizontal-scroll-mode (Off) When set to On, makes readline use a single line for display, scrolling the input horizontally on a single screen line when it becomes longerthan the screen width rather than wrapping to a new line.该文件的位置由IN...

linux – Bash脚本启动铬,睡20秒,然后安静地关闭【代码】

我正在尝试创建一个bash脚本,它将启动铬,等待20秒,然后关闭铬. 这是为了xbmcbuntu所以我可以打开一个站点,然后它会在20秒后自动关闭(因为我无法用遥控器关闭它). 我有的是:#!/bin/bash openbox & /usr/bin/chromium-browser sleep 20 killall -9 openboxChromium打开确定,但永远不会关闭. 我错过了什么?解决方法:由于您没有在后台使用chrome-browser,因此在chrome-browser完成执行之前,chrome-browser命令之后的所有代码都不会执...

linux – Bash:日期“%b”和日期“%h”(当然还有)日期“%B”给出月份的全名?【代码】

我正在Ubuntu服务器12.04中编写一个shell脚本,它应该比较日志文件中的一些数据.在日志文件中,日期以以下格式给出:[Mon Apr 08 15:02:54 2013]如你所见,它表明4月 根据man-page,bash中使用的选项是b或h. 然而,我(在我的比较脚本中,或直接在shell中)使用b,h或B无关紧要.它们都返回月份的全名.date +"%b" #Returns april (should have returned Apr) date +"%h" #Returns april (should have returned Apr) date +"%B" #Returns apri...

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 – 使用bash以递归方式查找具有相同名称但实际上不同的文件的最佳方法?【代码】

我有大约15000个嵌套文件结构的图像,其名称是SKUS.我需要确保没有相同SKU的文件实际上是不同的文件. 例如,如果我有两个或多个名为MYSKU.jpg的文件,我需要确保它们之间没有任何不同. 在bash命令中执行此操作的最佳方法是什么?解决方法:我不想完全为你解决任务,但这里有一些有用的成分你可以尝试和整合:find /path -type f # gives you a list of all files in /path你可以像这样遍历列表for f in $(find /path -type f -name '*...

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 – Bash:当使用管道运算符时,陷阱ERR不起作用【代码】

我试图将stdout和stderr发出的所有内容记录到日志文件中并仍然保留控制台.为此,我只是附上:|& tee -a log_file.log到每个命令.但是,如果脚本期间发生任何错误,我还想运行自定义命令.为此,我在脚本的开头添加了以下内容:trap“echo non-zero exit code detected”ERR.问题是使用管道操作符,陷阱中的回显不再执行. 脚本1,没有管道:$cat test.sh #!/bin/bashtrap "echo Non-zero exit code detected!" ERRfunction fail_please() {...

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...