Tag: bash

如何testingvariables是否是Bash中的数字?

我只是不知道如何确保传递给我的脚本的参数是否是一个数字。 我想要做的就是这样的事情: test *isnumber* $1 && VAR=$1 || echo "need a number" 任何帮助?

如何将输出redirect到文件和标准输出

在bash中,调用foo将在stdout上显示该命令的任何输出。 调用foo > output会将该命令的foo > outputredirect到指定的文件(在本例中为“output”)。 有没有办法将输出redirect到一个文件,并显示在标准输出?

在Bash中redirectstderr和stdout

我想将进程的stdout和stderrredirect到单个文件。 我如何在Bash中做到这一点?

redirect所有输出到文件

我知道在Linux中,为了将输出从屏幕redirect到文件,我可以使用>或tee 。 但是,我不知道为什么部分输出仍然输出到屏幕上,而不是写入文件。 有没有办法将所有输出redirect到文件?

如何在Linux中改变echo的输出颜色

我正在尝试使用echo命令在terminal中打印文本。 我想用红色打印文本。 我该怎么做?

当相同的代码在别处工作时,为什么shell脚本会出现语法错误?

我有一个简单的shell脚本,我从一个工作脚本中复制。 如果我将其复制粘贴到terminal,它将起作用: if true then true fi 然而,当我用bash myscript运行脚本时,我得到各种语法错误,就好像一些关键字丢失一样。 myscript: line 4: syntax error near unexpected token `fi' ,就好像then不存在。 myscript: line 6: syntax error: unexpected end of file ,就好像fi不存在一样。 myscript: line 4: syntax error near unexpected token `$'\r' ..什么? 为什么在这个特定的脚本中发生这种情况,而不是在我的命令行或从我复制的脚本中?

循环在bash中的值对

我有10个文本文件,我想paste每对文件,使我有5个文件。 我尝试了以下内容: for i in 4_1 5_1 6_1 7_1 8_1 do for j in 4_2 5_2 6_2 7_2 8_2 do paste ${i}.txt ${j}.txt > ${i}.${j}.txt done done 但是,这个代码结合了所有可能的组合,而不是仅仅组合匹配对。 所以我想要文件4_1.txt与4_2.txt配对, 5_1.txt与5_2.txt等配对

在bash中,当参数作为variables传递给它们时,为什么shell命令在参数中忽略引号?

这工作如广告: # example 1 #!/bin/bash grep -ir 'hello world' . 这不: # example 2 #!/bin/bash argumentString="-ir 'hello world'" grep $argumentString . 尽pipe在第二个例子中引用了'hello world' ,但是grep将'hello as one argument and world'为另一个,这意味着在这种情况下, 'hello将是search模式, world'将成为searchpath。 同样,只有当参数从argumentStringvariables扩展时才会发生这种情况。 在第一个例子中,grep正确地将'hello world'为单个参数。 任何人都可以解释为什么这是? 有没有适当的方法来扩展一个stringvariables,将保留每个字符的语法,使其正确解释的shell命令?

用Bashvariables括起扩展 – {0 .. $ foo}

WEEKS_TO_SAVE=4 mkdir -p weekly.{0..$WEEKS_TO_SAVE} 给我一个名为weekly的文件夹。{0..4} 是否有一个秘密,以鼓励扩大,同时创build文件夹我失踪?

什么是间接扩展? $ {!var *}是什么意思?

我正在阅读“ Bash入门指南 ”。 它说: 如果PARAMETER的第一个字符是感叹号,则Bash使用PARAMETER其余部分形成的variables的值作为variables的名称; 这个variables然后被展开,并且该值被用在其余的replace中,而不是PARAMETER本身的值。 这被称为间接扩张。 给出的例子是: franky ~> echo ${!N*} NNTPPORT NNTPSERVER NPX_PLUGIN_PATH 我在这里不太明白: 由PARAMETER的其余部分形成的variables的值 因为PARAMETER就是!N* ,那么 PARAMETER的其余部分 只是N* 。 这怎么可能形成一个variables? Bash在那里search所有可能的命令吗?