【linux-在bash脚本中添加数字表示“未找到”】教程文章相关的互联网学习教程文章

linux – 如何从bash脚本修改/ etc / environment【代码】

目前,我正在尝试自动化我们在工作中使用的程序.每当我们安装Oracle的JDK时,我们都需要手动将其添加到我们的全局PATH变量中.以下是该程序的摘录:sudo vi /etc/environment add this at the beginning of the PATH : "/opt/jdk1.6.0_45/bin:"这是我的计算机上/ etc / environment的内容:PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games"以下是修改后的样子:PATH="/opt/jdk1.6.0_45/bin:/usr/loca...

linux – 如何匹配文件扩展名,无论bash脚本中的大小写【代码】

我只想说我想匹配.abc扩展名,但它可能会以.ABC或.AbC的形式出现.如何识别.abc扩展名的所有这些变体以处理.abc文件? 现在我正在使用: ls | grep -i .abc 但是我听说grep的管道通常不是最好的主意.有一个更好的方法吗?解决方法:如果从字面上输入扩展名,则可以使用字符类:ls *.[Aa][Bb][Cc]您还可以使用find的-iname选项:find -maxdepth 1 -iname '*.abc'

linux – 我如何搜索>进入bash脚本【代码】

我正在编写一些脚本来创建目录,但我首先要确保用户插入的名称是正确的.对于这个问题,我写了类似下面的内容(FILE.txt是用户名保存的文件)if grep -q '>' FILE.txtthenecho "You should avoid inserting ">" in your code!"fi但似乎bash认为我想插入输出,所以它给出了这个错误:-sh:意外标记“newline”附近的语法错误有人有想法吗? tnx寻求帮助解决方法:问题不在于你的grep线,而在于你的回声线.你的shell认为它是:echo "You sho...

linux – bash脚本逐行读取和echo到文件【代码】

我不能让这个脚本做我想做的事.有人可以帮助它应该逐行读取文本文件,然后将结果回显到另一个文件中.但它没有认识到空白行.因为它应该打印线,除非它是空白然后它打算打印到文件.iname = checktest while read line do if [ "$line" == "" ]; thenecho "<blank>" >> $iname2.txtelse echo "$line" >> $iname2.txt fidone <$iname.txt解决方法:bash中的变量赋值之间不能有空格.#!/bin/bashiname=checktest #Should b...

linux – bash脚本,用于创建名称从00到ff的文件夹【代码】

我想创建名称从00到ff(总共256个文件夹)的文件夹,这样每个文件夹都会有一个名称从00到ff的文件夹.我应该在终端上写什么?有什么建议吗?解决方法:printf可以将一系列数字格式化为十六进制:mkdir $(printf "%02x " {0..255})for dir in */ domkdir $(printf "$dir/%02x " {0..255}) done

linux – 用于远程收集主机名,IP和主机总内存的Bash脚本【代码】

我正在尝试编写一个脚本,该脚本将从我提供给脚本的列表中收集远程主机上安装的主机名,IP和总内存.该脚本将从Redhat和Solaris机器收集信息.下面是我的脚本的样子:#!/bin/bash echo > ip_info.output echo -e "\n" for host in `cat ip_adds` do echo "Hostname:" $host sudo ssh -o BatchMode=yes -o ConnectTimeout=5 $host "echo IP Address:; ip route get 1 | awk '{print $NF;exit}'; free -m | grep Mem | awk '{print $1,$2...

linux – 在bash脚本中的if语句中-f是什么意思?【代码】

试图理解这段代码:if [ -f /etc/bashrc ]; then. /etc/bashrc fi我不确定-f的含义是什么.解决方法:检查这个的相关手册页是shell本身的,bash,因为-f是shell提供的功能,它是内置的bash. 在我的系统(CentOS 7)上,精美的手册页覆盖了它. grep可能不会在其他发行版上给出相同的结果.然而,如果你运行man bash然后搜索’-f’,它应该给出你需要的结果.$man bash | grep -A1 '\-f file$'-f fileTrue if file exists and is a regular file....

linux – bash脚本,case语句没有返回输出【代码】

我写了这段代码来回应一个问候语,这取决于它是什么时候,但是当我运行它时它没有显示任何错误,但也没有回应任何命令行.为了尝试进行故障排除,我注释掉了所有内容并只回显了时间变量,这很好.那么,我做错了什么?!#!/bin/bashtime=$(date +%H)case $time in #check if its morning[0-11] ) echo "greeting 1";;#check if its afternoon[12-17] ) echo "greeting 2";;#check if its evening[18-23] ) echo "greeting 3" esac解决方法:...

linux – 如何使bash脚本等到挂载pendrive?【代码】

我有一个bash脚本,它有一行cd / run / media / Username / 121C-E137 /一旦CPU识别笔驱动器就会触发此脚本,但只有在安装过程完成后才能执行此行.到目前为止,该行在安装笔式驱动器之前执行,并返回目录无效的错误.解决方法:一个简单的解决方案是让脚本定期检查目录,并且只有在那里继续:PENDRIVE='/run/media/Username/121C-E137' while [ ! -d "$PENDRIVE" ]; dosleep 10 donecd $PENDRIVE ...

linux – 在bash脚本中,比uuencode编码电子邮件附件有哪些更好的选择?【代码】

我正在引用my original post,其中我询问有关$2 $3等参数放置的问题,最后是${@:2}.有人提到有更好的方法来编码电子邮件附件. 注意,我使用uname -or来找出2.6.32-400.26.3.el5uek GNU / Linux,如果这有助于回复. 我在bash脚本中使用该命令将文件附加到电子邮件中,并将其与其他几个脚本一起使用.但是,我们的一些机器甚至不支持uuencode,那么将文件附加到电子邮件比uuencode更好的选择是什么?解决方法:我更喜欢使用mpack将附件作为MI...

linux – 杀死bash脚本创建的进程的最佳方法?【代码】

我有一个在服务器上运行的脚本,它将创建许多子进程(大约800个).我想一口气杀死他们.以下是ps信息.root 26363 0.0 0.0 119216 1464 ? Ss Mar02 0:00 SCREEN -S website_status root 26365 0.0 0.0 108472 1844 pts/12 Ss Mar02 0:00 \_ /bin/bash root 4910 0.0 0.0 161684 1956 pts/12 S Mar02 0:00 \_ su webmon webmon 4939 0.0 0.0 108472 1924 pts/12 S+ Mar02...

linux – 在bash脚本中继续之前等待通过ssh运行的脚本完成【代码】

我有一个看起来像这样的脚本:command1 command2 ssh login@machine_with_lots_of_ram:~/script_that_needs_ram.sh command4 output_file_from_above其中命令4需要ssh命令的输出. 如何让程序等到ssh脚本完成后再继续?或者更好的是,如何在命令1之后设置ssh脚本在远程计算机上运行并保持程序运行命令4直到它完成?解决方法:在远程服务器上执行命令(脚本)之前,SSH会话不会退出. 根据脚本是将数据输出到服务器上的文件还是将数据输出到...

linux – 用于验证rpm是否至少在给定版本的Bash脚本【代码】

我需要编写一个脚本来验证RPM是否至少是Linux中的给定版本. >问题1:如何在变量$RPM_VERSION中获取RPM版本,以便它包含一直到“.src.rpm”的版本?>问题2:比较两个版本的最佳方法是什么? 例如:rpm-4.2-9.69.src.rpm与rpm-4.14-0.69.src.rpm相比.这是我的尝试,但它不起作用:STR_BASE_ACCEPTABLE_VER="rpm-4.2-0.69.src.rpm"if [[ "$RPM_VERSION" < "$STR_BASE_ACCEPTABLE_VER" ]]; then echo "$RPM_VERSION is too low..." e...

linux – 使用bash脚本安装crontab【代码】

我已经创建了一个脚本来在crontab上安装两个脚本.#!/bin/bashsudo crontab -l > mycron#echo new cron into cron fileecho "*/05 * * * * bash /mnt/md0/capture/delete_old_pcap.sh" >> mycron #schedule the delete scriptecho "*/12 * * * * bash /mnt/md0/capture/merge_pcap.sh" >> mycron #schedule the merge script#install new cron filecrontab mycron rm mycron脚本运行,并将两行添加到crontab.但是如果我再次运行...

linux – 在Bash脚本中设置-e:发现失败位置?【代码】

众所周知,我们应该使用set -e来创建Bash脚本more robust.但是,启用此功能后,如果脚本失败,是否有任何方法可以让Bash报告脚本的哪一行失败?目前,我不得不用大量的echo命令重新运行脚本.解决方法:我知道使用行号进行调试的最佳选项是自定义set -x打印的“”前缀以包含$LINENO. 例如在脚本的顶部:PS4='($LINENO)+ ' set -x(不完全是你要求的,但它很方便!)