Questions tagged «bash»

与其他Bourne / POSIX shell相对,GNU的Bourne Again SHell特有的问题。对于一般关于Unix shell的问题,请改用/ shell标记。

1
为什么bash时间比GNU时间更精确?
buitin bash命令time可提供毫秒级的执行精度,而GNU time(通常是/ usr / bin / time)可提供毫秒级的精度。的times(2)系统调用给出时钟倍,100个时钟= 1秒(通常),所以精度等GNU time。所以问题是bash time使用什么,以便更精确?
12 bash  time  gnu 

1
学习bash脚本以学习良好的编码约定的一个好例子是什么?
我已经学习了bash编程的基础知识。我想研究一些bash脚本示例,以便我可以学习bash脚本的良好习惯。 特别是,我对显示以下内容的bash脚本示例感兴趣: 如何处理参数并触发条件功能 如何检查输入错误 如何执行命令完成 如何将bash脚本组织成函数,命令等 如何显示帮助信息 例如,我从github的autorandr学到了很多东西。还有其他可以让我了解bash脚本约定的此类脚本或脚本存储库吗?
12 bash 

7
以相反顺序打印外壳参数
我有点卡住。我的任务是按相反的顺序将参数打印到脚本中,但第三个和第四个除外。 我的代码是这样的: #!/bin/bash i=$# for arg in "$@" do case $i in 3) ;; 4) ;; *) eval echo "$i. Parameter: \$$i";; esac i=`expr $i - 1` done 由于我讨厌eval(向PHP致意),因此我在寻找一种没有解决方案的解决方案,但找不到解决方案。 如何动态定义参数的位置? PS:不,这不是一项家庭作业,我正在学习考试外壳,因此我尝试解决旧的考试。


3
如何在外壳中管道MD5哈希结果
我正在寻找一种将方法的结果传递md5sum到另一个命令的简单方法。像这样: $echo -n 'test' | md5sum | ... 我的问题是不仅md5sum输出字符串的哈希值,而且输出连字符,这表明输入来自标准输入。我检查了man文件,但没有找到控制输出的任何标志。


6
LC_CTYPE破坏自动完成功能:此问题的原因是什么?
今天由于某种原因,每当我在终端中单击选项卡时,都会显示以下内容: cat bash: warning: setlocale: LC_CTYPE: cannot change locale (en_CA) Display all 150 possibilities? (y or n) 当我键入cat然后按TAB 时,就会发生这种特殊情况。我从未更改任何设置或任何内容。有人知道发生了什么吗?

5
在路径中找到没有“哪个”的文件?
我(以某种方式)能够运行脚本: $ assemble.sh file ... [output] 但which找不到它: $ which assemble.sh which: no assemble.sh in (/s/std/bin:/usr/afsws/bin:/opt/SUNWspro/bin:/usr/ccs/bin:/usr/ucb:/bin:/usr/bin:/usr/stat/bin:/usr/X11R6/bin:. 这怎么可能? 我如何找到该文件在哪里? 我正在使用bash。
12 bash  shell  path 

2
./executable:无法执行二进制文件
我有一个脚本,当我通过SSH服务器自己执行该脚本时效果很好,但是在持续集成服务器Hudson运行该脚本时遇到了问题。 我正在嵌入式Linux系统(目标)上自动化测试。目标通过串行连接到服务器A(RHEL 5),并通过minicom进行操作。服务器B(FC 12)构建实际在目标服务器上运行的测试,并且可以发送到服务器A。服务器C(RH)托管哈德森,而服务器B作为从服务器。 我已经编写了一个runscript(http://linux.die.net/man/1/runscript)脚本来完成实际目标所需的一切;它引导映像,从服务器B挂载目录并执行测试。服务器B上的bash脚本使用runscript脚本以及一些伴随动作来调用minicom。我在服务器B上有一个bash脚本,它使用 ssh -t -t ServerA bashScript.sh 使这些测试在目标上运行。我在服务器C上,可以通过ssh到服务器B并执行ssh到服务器A的脚本来运行那些测试,该服务器使用runscript执行minicom。ew。 回顾: 服务器A:Hudson使用其从属机制来SSH到服务器B。 服务器B:kickOffTests.sh有线路ssh -t -t ServerA runTests.sh 服务器A:runTests.sh调用一个Perl脚本,该脚本调用minicom -S my.script ttyE1 引导后目标:从服务器B挂载测试所在的目录,然后输入该目录。它调用另一个bash脚本,该脚本运行测试,它们是已编译的C可执行文件。 现在,当我自己执行这些脚本中的任何一个时,它们就会执行应有的操作。然而,当哈德森试图做同样的事情,比它抱怨在“另一个bash脚本”调用的C可执行文件,行小型机会议./executable,与./executable: cannot execute binary file 我仍然有很多关于linux的知识,但是我想这个问题是由于Hudson没有与控制台连接而造成的。我不知道哈德森到底是怎么控制它的奴隶的。我export TERM=console在运行kickOffTests.sh之前尝试在配置中使用该行,但是问题仍然存在。 谁能向我解释发生了什么以及如何解决?我无法从此等式中删除任何服务器。也许可以将minicom排除在等式之外,但这会给该项目增加未知的时间,因此我更希望使用现有的解决方案。


5
每隔一周通过cron运行脚本
我已经就如何做到这一点进行了大量研究,而且我发现cron并没有直接的方式来工作,例如隔周四。 现在,我倾向于制作一个仅每周运行一次的脚本,该脚本在运行时会触摸一个“标志”文件,如果运行并且文件已经存在,则删除该文件(而不执行每两周一次)。 我的问题是,还有其他更优雅或更简单的方法来实现bash脚本每隔一周自动运行一次的目标吗? 谢谢!
12 bash  scripting  cron 

3
前一个命令的最后一个参数是什么?
$_ 据说是上一个命令的最后一个参数。 所以我想知道为什么不是,EDITOR="emacs -nw"但EDITOR在下面的示例中呢? 为什么不是"emacs -nw"最后一个论点的一部分? 更一般地,一个参数和最后一个参数的定义是什么? 谢谢。 $ export EDITOR="emacs -nw" $ echo $_ EDITOR
12 bash 

3
如何将空的JSON大括号作为默认值回显?
{}如果缺少envvar,我似乎无法得到空的JSON 来回显。我或者}在输出中设置了尾随符,或者显示了转义符。 bash-3.2$ unset X bash-3.2$ echo "${X:-{}}" {} bash-3.2$ X=y bash-3.2$ echo "${X:-{}}" y} bash-3.2$ echo "${X:-{\}}" y bash-3.2$ unset X bash-3.2$ echo "${X:-{\}}" {\} bash-3.2$ echo "${X:-'{}'}" '{}' bash-3.2$ X=z bash-3.2$ echo "${X:-'{}'}" z 如何正确逃脱?
12 bash  variable 



By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.