Articles of bash

在linux / bash中创build无限循环重复的文件猫

我想要做的就是把“重复”的单个文件(比如无数次地input)作为另一个程序的input。 有没有在命令行/使用bash的方式?

bash:迭代通过索引select的JSON数组的成员

我使用jq来parsingJSON文件,将每个JSON数组抽取到一个shell数组中。 我目前的代码如下所示: for ((i = 0; i < ${#nvars[@]}; i++)); do v1=($(cat $INPUT | jq '."config"[i]."var1"[]')) echo $v1 done 错误信息: error: i is not defined 我也换了 v1=($(cat $INPUT | jq '."config"[i]."var1"[]')) 同 v1=($(cat $INPUT | jq '."config"[$i]."var1"[]')) 还是行不通。 任何想法? 任何帮助表示赞赏! 编辑:示例input数据 { "config-vars":[ { "var1":["v1","v2"], "var2":"" }, { "var1":["v3",""], "var2":"v4" } ] }

在bash脚本中检查C程序的返回值?

我有一个bash脚本,我通过使用$来检查上次运行命令的退出代码? variables,但现在我正在执行一个C程序(从该脚本),如果程序成功执行返回0。 有没有什么办法可以从我的bash脚本中捕获C程序的返回值? 我相信不同的命令如awk,sed等都是用C写的。他们如何使用$? 存储他们的退出代码呢? 我怎样才能让我的C程序存储在$退出代码? 我希望我的问题很清楚。

awk:只能在某个字段中查找和replace

我有这样的文本文件: $ cat test 12 13 2100 s 12 13 3100 s 100 13 100 s 12 13 300 s 我想输出是这样的: $ cat test 12 13 22000 s 12 13 32000 s 100 13 2000 s 12 13 300 s 我只想把第三场(一次100包含在$3 )的100换成2000 。 我如何使用awk完成这项工作?

在bash中取消删除已删除的命令

如果你写了一个非常长的命令,比如说cd /very/long/path ,然后你按ctrl + c或者ctrl + u(如果光标在最后),然后你意识到你想要命令回来,有什么方法可以在不重新input的情况下获得完整的产品线。 是否有任何技巧来改变.bashrc以便bash_history跟踪在shell上按下的键,而不是在input命中之后。 我在Bash回答了一个问题,如何清除当前的input? 并意识到如果我们有这样的select,这将是非常有益的。

如何使用awk来提取引用的字段?

我在用 awk '{ printf "%s", $3 }' 从空格分隔的行中提取一些字段。 当领域里面有空格时,我会得到部分结果。 请任何机构提出解决scheme?

./a.out的redirect不捕获分段错误

我运行命令 ./a.out <in&> output.txt 我也想把错误放在output.txt 。 命令的exit状态是139,在terminal输出的是: 分割故障(核心转储) 和output.txt文件是空的。

如何遍历Bash中的所有ASCII字符?

我知道如何遍历字母: for c in {a..z}; do …; done 但我不知道如何遍历所有的ASCII字符。 有谁知道如何?

从键盘发送SIGINT到bash中的pipe道命令

如果在bash中运行a | b | c | d a | b | c | d a | b | c | d在命令行上,然后按^ C ,哪个进程得到信号?

为什么unix读取时不读最后一行?

我的脚本 export IFS=":" cat hello | while read abcd; do echo $a,$b,$c,$d done 我的文件hello 1:1:1:1 2:2:2:2 3:3:3:3 我的输出 1,1,1,1 2,2,2,2 如果我在3:3:3:3之后input一个空行,那么输出就变成了 1,1,1,1 2,2,2,2 3,3,3,3 任何人都知道我可以如何解决这个问题,所以我不需要在你最后一个空行?