Questions tagged «bash»

有关为Bash命令外壳编写的脚本的问题。对于具有错误/语法错误的shell脚本,请在此处发布之前,使用shellcheck程序(或在Web shellcheck服务器中的https://shellcheck.net)进行检查。有关Bash交互使用的问题更可能是Super User而不是Stack Overflow上的话题。

5
如何遍历目录中的文件并更改路径并将后缀添加到文件名
我需要编写一个脚本以不同的参数启动程序,但是我是Bash的新手。我开始我的程序: ./MyProgram.exe Data/data1.txt [Logs/data1_Log.txt]。 这是我想做的伪代码: for each filename in /Data do for int i = 0, i = 3, i++ ./MyProgram.exe Data/filename.txt Logs/filename_Log{i}.txt end for end for 因此,我真的很困惑如何从第一个参数创建第二个参数,因此看起来像dataABCD_Log1.txt并启动我的程序。
562 bash  for-loop  filenames  glob 

6
如何获取cURL以不显示进度栏?
我正在尝试在脚本中使用cURL,并使其不显示进度栏。 我已经试过了-s,-silent,-S,和-quiet选择,但他们没有工作。 这是我尝试过的典型命令: curl -s http://google.com > temp.html 我只在将进度条推送到文件时才得到进度条,所以curl -s http://google.com没有进度条,但是curl -s http://google.com > temp.html有。
562 linux  bash  unix  scripting  curl 

14
通过Bash命令在文本文件中查找和替换
查找和替换给定输入字符串(例如abc)并替换为另一个字符串(例如XYZ在file中)的最简单方法是什么/tmp/file.txt? 我正在编写一个应用程序,并使用IronPython通过SSH执行命令-但我不太了解Unix,也不知道要寻找什么。 我听说Bash除了是命令行界面之外,还可以是一种非常强大的脚本语言。因此,如果这是真的,我假设您可以执行类似的操作。 我可以用bash做到吗,实现我的目标最简单的脚本(一行)是什么?

30
如何在bash中等待几个子进程完成并在任何子进程以代码!= 0结尾时返回退出代码!= 0?
如何在bash脚本中等待从该脚本派生的几个子进程完成并返回退出代码!= 0,当任何子进程以代码!= 0结尾时? 简单脚本: #!/bin/bash for i in `seq 0 9`; do doCalculations $i & done wait 上面的脚本将等待所有10个产生的子进程,但始终将退出状态设为0(请参阅参考资料help wait)。如何修改此脚本,以便在子进程中的任何一个以代码!= 0结尾时,它会发现生成的子流程的退出状态并返回退出代码1? 有没有比收集子流程的PID,按顺序等待它们并汇总出口状态更好的解决方案了?
561 bash  process  wait 



8
在Bash中比较数字
我开始学习有关为bash终端编写脚本的知识,但是我无法弄清楚如何使比较正常工作。我使用的脚本是: echo "enter two numbers"; read a b; echo "a=$a"; echo "b=$b"; if [ $a \> $b ]; then echo "a is greater than b"; else echo "b is greater than a"; fi; 问题是它从第一位开始对数字进行比较,即9大于10,但1大于09。 如何将数字转换为类型以进行真正的比较?
545 bash  shell  numeric 

5
为什么有时在元字符周围需要空格?
几个月前,我在手臂上刺了一个叉子炸弹,而我跳过了空格,因为我认为如果没有空格,它看起来会更好。但令我沮丧的是,有时(并非总是)当我在shell中运行它时,它不会启动fork炸弹,而只是给出语法错误。 bash: syntax error near unexpected token `{:' 昨天,当我尝试在朋友的Bash shell中运行它时,它发生了,然后我添加了空白,它突然起作用了,:(){ :|:& };:而不是:(){:|:&};: 空格重要吗?我在手臂上纹身了语法错误吗? 它似乎始终在zsh中工作,但在Bash中不起作用。 一个相关的问题并不能解释有关空格的任何信息,这确实是我的问题。为什么Bash能够正确解析需要空格?



21
如何从Bash脚本检测操作系统?
我想将我的文件.bashrc和.bash_login文件保留在版本控制中,以便可以在所有使用的计算机之间使用它们。问题是我有一些特定于OS的别名,因此我正在寻找一种确定脚本是否在Mac OS X,Linux或Cygwin上运行的方法。 在Bash脚本中检测操作系统的正确方法是什么?
524 bash  os-detection 

5
Bash变量分配中找不到命令错误
我有一个名为test.sh的脚本: #!/bin/bash STR = "Hello World" echo $STR 当我跑步时,sh test.sh我得到以下信息: test.sh: line 2: STR: command not found 我究竟做错了什么?我在网上看了非常基础/入门的bash脚本教程,这就是他们所说的声明变量的方式...因此,我不确定自己在做什么错。 我在Ubuntu Server 9.10上。是的,bash位于/bin/bash。

10
如何将大文本文件分割成行数相等的小文件?
我有一个大的(按行数)纯文本文件,我想按行数将其拆分成多个较小的文件。因此,如果我的文件大约有200万行,我想将其拆分为10个包含20万行的文件,或100个包含20k行的文件(再加上一个文件,其余部分;被平均整除并不重要)。 我可以在Python中相当容易地做到这一点,但我想知道是否有任何忍者可以使用bash和unix utils来做到这一点(与手动循环和计数/分区行相对)。
514 bash  file  unix 

28
从键/值对文件中设置环境变量
TL; DR:如何将一组键/值对从文本文件导出到Shell环境中? 作为记录,下面是问题的原始版本,并带有示例。 我正在bash中编写一个脚本,该脚本分析某个文件夹中具有3个变量的文件,这是其中之一: MINIENTREGA_FECHALIMITE="2011-03-31" MINIENTREGA_FICHEROS="informe.txt programa.c" MINIENTREGA_DESTINO="./destino/entrega-prac1" 该文件存储在./conf/prac1中 然后,我的脚本minientrega.sh使用以下代码解析文件: cat ./conf/$1 | while read line; do export $line done 但是当我minientrega.sh prac1在命令行中执行时,它不会设置环境变量 我也尝试使用,source ./conf/$1但同样的问题仍然适用 也许还有其他方法可以做到,我只需要使用传递的文件的环境变量作为脚本的参数即可。

19
彩色grep-使用突出显示的匹配项查看整个文件
我发现grep的--color=always标志非常有用。但是,grep仅打印具有匹配项的行(除非您请求上下文行)。鉴于它打印的每一行都有一个匹配项,因此突出显示并没有添加尽可能多的功能。 我真的很想要cat一个文件,然后看到整个文件都带有突出显示的模式匹配项。 有什么办法可以让grep打印正在读取的每一行,而不管是否有匹配项?我知道我可以编写一个脚本在文件的每一行上运行grep,但是我很好奇standard是否可以实现grep。
509 bash  shell  colors  grep 

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.