【linux – Bash脚本:不使用$@或$*扩展参数】教程文章相关的互联网学习教程文章

linux – 在bash脚本中运行R脚本【代码】

我在folder1的子文件夹中有2个R脚本,并运行以下脚本. R脚本没有回复“没有这样的文件或目录”错误.有谁知道如何解决这个问题?谢谢 Bash脚本:#! /usr/bin/env Rscript for dir in folder1/* ; do Rscript script1.R Rscript script2.R done解决方法:你#!指定R,而不是bash.你的循环是错误的. 也许试试这个:#!/bin/bash Rscript for dir in folder1/script*.R ; doecho "Now running $dir"Rscript folder1/$dir done

linux – Bash脚本 – if和grep不起作用【代码】

由于这个社区似乎非常好,所以我想我会问一个问题 – 我有这个小脚本,但它不会只是从输出中获取超时:#!/bin/bash echo -n "Enter ntp server address: " read SERVER if ntpdc -n -c monlist $SERVER | grep "timed out" then echo "Server won't let You use monlist."exit 0 else echo "Server will let You use monlist." fi有任何想法吗?谢谢 :)解决方法:在这种情况下,“问题”是ntpdc将超时消息发送到标准错误,而不是标准输...

linux – 区别;&和;;在bash脚本中【代码】

我正在将一个bash脚本从Linux机器盒复制到我的Mac笔记本电脑上,在此过程中,脚本开始抱怨使用;&. 有错误:./build.sh: line 122: syntax error near unexpected token `;’./build.sh: line 122: ` ;&’脚本中有一些用法,但简短的用法是:case ${OPTION} inxxx)export DEVICES=xxx;;yyy)export DEVICES=yyy;;*)echo "${OPTION}: Unknown device type: use xxx|yyy"exit 1;&esac ;;我已经取代了所有的用法;&与;;...

linux – Bash脚本在其中执行带有变量的wget【代码】

我正在尝试执行一个带有变量的wget命令,但它只是忽略它,不知道我做错了什么?#!/bin/bashURL=http:://www.myurl.comecho $(date) 'Running wget...' wget -O - -q "$URL/something/something2"解决方法:四件事: >在您的网址周围添加引号:http :: //www.myurl.com ==> “HTTP :: //www.myurl.com”>删除双冒号:“http :: //www.myurl.com”==> “http://www.myurl.com”>摆脱wget命令中的额外标志和连字符:“wget -O – -q”$...

linux – 使用CURL检查重定向的Bash脚本【代码】

我写了以下脚本:#!/bin/bashhost="www.myhost.com"IFS=$" " ;for x in $(cat foo.list) ; dosrcURI=$(echo $x | awk '{print $1}') ;destURI=$(echo $x | awk '{print $2}') ;srcCURL=$(curl -s -H "Host: ${host}" -I "qualified.domain.local${srcURI}" |grep "Location:" | tr -d [[:cntrl:]]) ;destCURL=$(curl -s -H "Host: ${host}" -I "qualified.domain.local${srcURI}" |grep "301" | tr -d [[:cntrl:]]) ;echo " "echo ...

linux – 为什么在bash脚本中表达式始终为true【代码】

我是shell脚本的新手,我编写了这段代码,如果第二个目录中不存在该文件,则将输入文件从目录new1复制到目录new2. 问题是第一个if表达式始终为true,并且代码始终打印“文件已成功复制”,即使该文件存在于第二个目录中也是如此. 这是我的代码:while true; doecho "enter a file name from directory new1 to copy it to directory new2 "echo "or enter ctrl+c to exit: "read inputi=0cd ~/new2 if [ -f ~/new1/$input ]; theni=1 ...

linux – bash脚本执行日期/时间

我现在试图打开和关闭一段时间.我在Linux环境中有一个bash脚本,出于安全原因,我希望防止在上午9点到下午5点之间执行,除非给出一个标志.因此,如果我在上午9点到下午5点之间执行./script.sh,它会说“NO GO”,但如果我这样做./script.sh -force它会绕过检查.基本上确保这个人不会偶然做某事.我已经尝试了一些日期命令,但无法将这个东西包裹在我的脑海里.任何人都可以帮忙吗?解决方法:写一个函数.使用日期“%k”获取当前小时,使用(()...

在linux bash脚本中杀死一个10分钟的僵尸进程【代码】

我一直在修补yukondude的正则表达式答案但收效甚微.我正在尝试杀死超过10分钟的进程.我已经知道进程ID是什么了.我每10分钟循环一次数组,看看是否有任何挥之不去的触发器,并且需要被杀死.有人对此有任何快速的想法吗?ps -eo uid,pid,etime 3233332 | egrep ' ([0-9]+-)?([0-9]{2}:?){3}' | awk '{print $2}' | xargs -I{} kill {}解决方法:就像真正的僵尸一样,僵尸进程无法杀死 – 它们已经死了. 当父进程调用wait()以获取其退出代...

linux – 如何在bash脚本中正确地将文件名传递给其他程序?【代码】

在正确处理文件名时,应该在Bash脚本(没有Perl,Python等等)中使用什么成语来为脚本的参数中的另一个程序构建命令行? 正确地说,我的意思是处理带有空格或奇数字符的文件名,而不会无意中导致其他程序将它们作为单独的参数处理(或者,在<或>的情况下 – 如果不正确的话,如果不正确的文件名字符则有效逃脱 – 做更糟糕的事情). 这是我的意思的一个组成例子,在一个不能正确处理文件名的形式中:让我们假设这个脚本(foo)为一个命令构建一个...

linux – 从bash脚本中捕获所有输入和输出【代码】

我试图捕获我为安装nagios创建的bash脚本的所有输入和输出.我现在使用tee创建日志文件,但它只显示何时有echo命令或某些输出来自“service httpd restart”.我主要想捕获用户在日志文件中输入的输入以供将来参考.解决方法:脚本命令在程序之前运行,将捕获所有输入和输出到您指定的文件.它以ctrl-D终止.script -c yourprogram filename可以做你想要的.有关脚本,请参见手册页.

linux – 运行时分析文件的bash脚本【代码】

我想做一个bash脚本来分析日志文件中的错误.我一直在寻找一种有效的方法来获取信息. 你能给我一些解决方案吗? 假设我的脚本将始终运行并获取写在日志文件中的每个新行,详细事件将生成警报或电子邮件(这不是问题). 谢谢!解决方法:使用tail -f不断获取新行并通过bash的内置读取操作它们.tail -f logfile | while read line; dotest "$line" = "nuclear meltdown" && echo "Run for your life!" done

linux – 当使用变量进行比较时,awk无法使用bash脚本【代码】

以下是我的bash脚本.如果我使用varible oid在awk中进行比较,它不会显示匹配的行.oid="3586302804992" SYMBOL_CSV_FILE="symbol/BAC" awk -F, '$5 == $oid' "$SYMBOL_CSV_FILE" echo "2nd" awk -F, '$5 == "3586302804992"' "$SYMBOL_CSV_FILE"O / P是2nd BAC,1,O,1,3586302804992符号/ BAK文件内容是BAC,1,O,1,3586302804992o将“”放在第3行的$oid附近,并没有任何区别.解决方法:代替:awk -F, '$5 == $oid' "$SYMBOL_CSV_FILE"像这...

在bash脚本中设置系统卷(在linux中)【代码】

我需要在bash脚本中设置系统卷,但我不知道如何执行此操作.我应该使用alsactl吗?我可以使用/ proc或/ sys中的某些值吗?解决方法:您应该使用amixer工具. 运行不带参数的amixer以获取混音器控件列表.使用这样的命令:amixer set Master 50% # set absolute amixer set Master 2dB+ # set relative amixer set Master unmute

linux – 在Bash脚本中使用find命令来查找整数【代码】

我需要找到并存档具有特定文件名的文件,例如ABC_000.jpgfind ~/my-documents/ -iname "ABC_***.JPG" -type f -exec cp {} ~/my-documents/archive/ \;但是我似乎无法找到一种方法来限制find函数只能找到3个整数,因为有些文件名为ABC_CBA.jpg我不想包括解决方法:试试这个:find ~/my-documents/ -iname "ABC_[0-9][0-9][0-9].JPG" -type f -exec cp '{}' ~/my-documents/archive/ \;编辑:或使用正则表达式:find -E ~/my-documents...

linux – 一个通用的bash脚本,用于安装apt-get和yum【代码】

我正在尝试编写一个简单的bash包装器,它抽象yum和apt-get.基本上所以我们可以做一些像通用安装卷曲这是我到目前为止:# universal-install package=$1 apt=`command -v apt-get` yum=`command -v yum`if [ -n "$apt" ]; thenapt-get updateapt-get -y install $package elif [ -n "$yum" ]; thenyum -y install $package elseecho "Err: no path to apt-get or yum" >&2;exit 1; fi是否有任何错误或改进/优化可以做出?解决方法:看...