Questions tagged «bash»

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



11
在一个文件中查找不在另一个文件中的行的快速方法?
我有两个大文件(文件名集)。每个文件中大约30.000行。我试图找到一种快速的方法来查找file2中不存在的行。 例如,如果这是file1: line1 line2 line3 这是file2: line1 line4 line5 然后我的结果/输出应该是: line2 line3 这有效: grep -v -f file2 file1 但是在我的大文件上使用时,它非常非常慢。 我怀疑有一种使用diff()的好方法,但是输出应该只是行,没有别的,我似乎找不到用于此的开关。 有人可以使用bash和基本的Linux二进制文件来帮助我找到一种快速的方法吗? 编辑:要跟进我自己的问题,这是迄今为止使用diff()找到的最好方法: diff file2 file1 | grep '^>' | sed 's/^>\ //' 当然,必须有更好的方法吗?
241 bash  grep  find  diff 



14
Bash中的错误处理
您最喜欢Bash处理错误的方法是什么?我在网上发现的处理错误的最好示例是由William Shotts,Jr在http://www.linuxcommand.org上编写的。 他建议使用以下函数在Bash中进行错误处理: #!/bin/bash # A slicker error handling routine # I put a variable in my scripts named PROGNAME which # holds the name of the program being run. You can get this # value from the first item on the command line ($0). # Reference: This was copied …




6
如何在bash中运行命令直到成功
我有一个脚本,想向用户询问一些信息,直到用户填写此信息,脚本才能继续。以下是我尝试将命令放入循环中以实现此目的的尝试,但由于某些原因它不起作用。 echo "Please change password" while passwd do echo "Try again" done 我尝试了while循环的许多变体: while `passwd` while [[ "`passwd`" -gt 0 ]] while [ `passwd` -ne 0 ]] # ... And much more 但是我似乎无法使其正常工作。
237 bash  command  while-loop 

9
什么是Linux相当于DOS暂停?
我有一个Bash shell脚本,我想在其中暂停执行,直到用户按下一个键为止。在DOS中,可以使用“ pause”命令轻松完成此操作。我可以在脚本中使用等效的Linux吗?
236 linux  bash  shell 

3
使用jq根据对象中变量的值选择对象
我有以下json文件: { "FOO": { "name": "Donald", "location": "Stockholm" }, "BAR": { "name": "Walt", "location": "Stockholm" }, "BAZ": { "name": "Jack", "location": "Whereever" } } 我正在使用jq,并想获取“位置”为“斯德哥尔摩”的对象的“名称”元素。 我知道我可以通过 cat json | jq .[] | jq ."name" "Jack" "Walt" "Donald" 但是给定子键的值(在此"location" : "Stockholm"),我无法弄清楚如何仅打印某些对象。
236 json  bash  jq 


9
从bash脚本本身将stdout的COPY重定向到日志文件
我知道如何将标准输出重定向到文件: exec > foo.log echo test 这会将“ test”放入foo.log文件。 现在我想将输出重定向到日志文件并将其保留在stdout上 即可以从脚本外部简单地完成: script | tee foo.log 但我想在脚本本身中声明它 我试过了 exec | tee foo.log 但这没用。
235 bash  shell  redirect  logging 

6
“查找:路径必须在表达式之前:”如何指定也可在当前目录中找到文件的递归搜索?
我很难找到,寻找当前目录及其子目录下的比赛,以及。 当我跑步 find *test.c,它只给我当前目录中的匹配项。(不在子目录中查找) 如果我尝试,find . -name *test.c我会期望得到相同的结果,但是相反,它只给我子目录中的匹配项。当工作目录中有应该匹配的文件时,它会给我:find: paths must precede expression: mytest.c 此错误是什么意思,如何从当前目录及其子目录中获取匹配项?
234 linux  bash  find 

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.