【Linux bash常用快捷键】教程文章相关的互联网学习教程文章

linux – Bash – 计算输入的数字平均值【代码】

需要有关Linux Bash脚本的帮助.基本上,当运行脚本时,要求用户提供三组数字,然后计算输入的数字并找到平均值.#!/bin/bash echo "Enter a number: " read awhile [ "$a" = $]; doecho "Enter a second set of numbers: " read b b=$if [ b=$]我错了吗?解决方法:仍然不确定你想要的是什么.但我认为你可以循环3次.然后每次迭代都会获得一组数字,然后将它们相加并跟踪您拥有的数量.如下所示. (注意$numbers和$sum自动初始化为0)#!/bin/...

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字符串命令?【代码】

我想用重定向和/或管道创建一个bash字符串命令,并使用它来显示命令字符串或执行命令字符串.没有重定向或管道的简单命令可以工作,但是带有重定向或管道的一串命令不能.例如,command="echo 1" $command echo "$command"会显示1 echo 1然而,command="echo 1 | cat" $command echo "$command"会显示1 | cat echo 1 | cat但我想要1 echo 1 | cat同样对于重定向,command="echo 1 | cat > 1.out" $command echo "$command"会显示1 | cat >...

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 – 将用户ID添加到bash历史记录中【代码】

目前,当我做历史时,我得到:996 05/13/14 10:37 ls-l997 05/13/14 10:37 ls -l998 05/13/14 10:37 chmod 700 hosts.txt999 05/13/14 10:37 tail -5 .bash_history1000 05/13/14 10:37 tail -10 .bash_history1001 05/13/14 10:38 hisotry当它成为时,是否可以将机制更改为:996 username1 05/13/14 10:37 ls-l997 username1 05/13/14 10:37 ls -l998 username2 05/13/14 10:37 chmod 700 hosts.txt999 username3 05/13/14...

linux – 有人可以解释Shell Shock Bash代码吗?【代码】

参见英文答案 > Is the behavior behind the Shellshock vulnerability in Bash documented or at all intentional? 4个我在理解以下代码时遇到了问题,这是Shell Shock的“漏洞证明”代码.有人可以向我解释一下吗?特别是,这部分“(){:;};”env x='() { :;}; echo vulnerable' bash -c "echo this is a test"解决方法:env x =(){:;}; echo weak’bash -c“echo这是一个测试” env做什么? 从...

Linux bash命令返回两个字符串不同的地方【代码】

所以,我一直在谷歌搜索,并在堆栈溢出中搜索更多细节,但我似乎无法找到一个简单的方法来做到这一点: 我想知道两个字符串(没有空格)有什么不同,并简单地打印出确切的差异. 例如.:Input 1 > "Chocolatecakeflavour" Input 2 > "Chocolateflavour"Output: "cake"我已经尝试使用diff和dwdiff,cmp以及其他已知的bash命令,但是我无法得到这个确切的结果. 有任何想法吗?解决方法:您可以使用带折叠的diff和像这样的awk:s="Chocolatecake...

linux – 可以在BASH环境中制作和操作对象列表【代码】

我正在一个bash环境中工作,我正在尝试列出样本名称;每个都将被输入一组命令.用R和Python创建列表很容易.但是,我无法确定是否或如何在bash中创建和访问等效列表变量. 例如,要在python中创建一个列表,可以写:samples=[sample1 sample2 sample3]要访问列表中的第一个变量,可以使用:currentSample = samples[0]可以使用文本字符串列表在bash中执行类似的操作吗?解决方法:以下是您想要的示例:samples=(sample1 sample2 sample3) cur...

linux – BASH嵌套进程替换【代码】

我试图在while循环中使用进程替换的stdout,如下所示:#!/bin/bashFILE_1=f1.txt FILE_2=f2.txtwhile read LINE; doecho "$LINE" done < <(paste <(tail -f "$FILE_1") <(tail -f "$FILE_2"))它应该做的是每当将新数据添加到文件时合并FILE_1和FILE_2的最后几行.显然,我想做的不仅仅是在while循环中打印行,但这是一个很好的例子. 不幸的是,当我运行这个脚本时,它只是位于终端并且什么都不做. 只运行这一行:paste <(tail -f "$FILE_...

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中按数字文件名排序的文本文件【代码】

有没有办法用一个bash命令以文件名的数字顺序连接多个文本文件? 我尝试了这个,但由于某种原因,前三行不按顺序排列sort -n *txt > all.txt解决方法:添加此答案,仅因为currently accepted answer建议a bad practice.&将来,Hellmar可能会遇到完全相同的问题I faced once.:Cannot delete an accepted answer. 无论如何,这应该是安全的答案:printf "%s\0" *txt | sort -zn | xargs -0 cat > all.txt这里,整个管道具有由NULL字符分隔的...

linux – bash set -e函数,带双管道【代码】

有人可以解释这种行为吗?这对我来说似乎很奇怪.#!/bin/bashset -e_func() { cat non-existant-filereturn 0 }_func || echo "Not seen since _func returned zero" _func echo "Not seen since _func returned non-zero"输出(GNU bash,版本4.3.42(1)-release(x86_64-pc-linux-gnu)):$bash func.sh cat: non-existant-file: No such file or directory cat: non-existant-file: No such file or directory $解决方法:如果您查看b...

linux – 在bash中从命令中删除最终位置参数【代码】

我有一个名为dosmt的脚本,我输入了几个args然后打印了一些东西:if [ "${@: -1}" == "--ut" ]; thenecho "Hi" fi我要做的是删除最后一个位置参数,即 – 如果该语句为真.所以,如果我的输入是$dosmt hello there-ut,它会回显你好,但是如果我打算之后打印args,我只想在那里打招呼.所以基本上我试图删除最后一个参数为好,我尝试使用shift但这只是暂时的,所以这不起作用…解决方法:首先,让我们设置您想要的参数:$set -- hello there --...