gpt4 book ai didi

bash - grep 在 bash 脚本中的行为与在交互式 shell 中的行为不同

转载 作者:行者123 更新时间:2023-11-29 09:36:42 26 4
gpt4 key购买 nike

<分区>

在我的 bash 脚本中,我尝试解析状态文件并根据某些关键字检测错误。我将这些前缀存储在一个列表中,然后遍历它们。

Bash 脚本:

status_page="/path/to/file.txt"
list="aaa bbb ccc ddd"

for pre in $list
do
echo "grep '\w\w\w${pre}-.*\.lin failed' ${status_page}" # debug
if grep '\w\w\w${pre}-.*\.lin failed' ${status_page}; then
echo "Found error!"
exit 8;
fi
done

/path/to/file.txt:

xyzfff-tool.lin failed
xyzggg-exec.lin failed
rstccc-tool.lin failed

bash 脚本应该捕获 rstccc-tool.lin failed 行,但它会直接跳过它。

为了调试,我逐字打印了 grep 命令,当我复制该行并在我的 shell (tcsh) 中发出命令时,它返回该行...

shell :

$ grep '\w\w\wccc-.*\.lin failed' /path/to/file.txt
rstccc-tool.lin failed
$ echo $?
0

如果我正常发出命令时grep能找到那行,为什么bash脚本调用grep时却找不到呢?

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com