相关疑难解决方法(0)

Bash循环中的计数器增量无效

我有以下简单的脚本,我正在运行一个循环,并希望维护一个COUNTER.我无法弄清楚为什么计数器没有更新.这是由于子shell创建了吗?我怎样才能解决这个问题?

#!/bin/bash

WFY_PATH=/var/log/nginx
WFY_FILE=error.log
COUNTER=0
grep 'GET /log_' $WFY_PATH/$WFY_FILE | grep 'upstream timed out' | awk -F ', ' '{print $2,$4,$0}' | awk '{print "http://domain.com"$5"&ip="$2"&date="$7"&time="$8"&end=1"}' | awk -F '&end=1' '{print $1"&end=1"}' |
(
while read WFY_URL
do
    echo $WFY_URL #Some more action
    COUNTER=$((COUNTER+1))
done
)

echo $COUNTER # output = 0
Run Code Online (Sandbox Code Playgroud)

linux bash shell scripting counter

117
推荐指数
9
解决办法
31万
查看次数

Bash命令行和输入限制

在bash(或其他shell)中是否存在某种字符限制,可以输入多长时间?如果是这样,那个字符限制是什么?

即是否可以在bash中编写一个命令行执行时间过长的命令?如果没有要求的限制,是否有建议的限制?

unix bash shell command-line-arguments

81
推荐指数
2
解决办法
9万
查看次数

42
推荐指数
7
解决办法
5万
查看次数

循环查找Bash中的输出,其中文件名包含空格

我尝试搜索可能包含我试图使用的空格的文件,这里-print0设置的IFS是我的脚本

IFS=$'\0';find people -name '*.svg' -print0 | while read file; do
    grep '<image' $file > /dev/null && echo $file | tee -a embeded_images.txt;
done
Run Code Online (Sandbox Code Playgroud)

我尝试使所有包含嵌入图像的svg文件都很好,它在没有-print0的情况下工作,但是在一个文件中失败,所以我停止了脚本.这是一个更简单的例子,也不起作用

IFS=$'\0';find . -print0 | while read file; do echo $file; done
Run Code Online (Sandbox Code Playgroud)

它不显示任何东西.

bash find while-loop

19
推荐指数
2
解决办法
1万
查看次数