“错误:没有这样的文件或目录”,即使命令在脚本之外运行文件

问题描述 投票:0回答:1

我正在编写一个运行命令的脚本:

podman ps | grep -i healthy | grep netbackup | awk '{print $1}'

此命令在 shell 中运行良好。但是,如果我尝试从 bash 脚本运行它,它会失败并显示“错误:没有这样的文件或目录”。

我该如何解决这个问题? 预先感谢。

[root@rservername tmp]# podman ps | grep -i healthy | grep netbackup | awk '{print $1}'
fc6725135e92
5bf17ae3b877
e1407dde3064
2ad1e55e8779
[root@rservername tmp]#

[root@rservername tmp]# ./test.sh
+ echo test
test
+ podman ps
+ grep -i healthy
+ grep netbackup
+ awk '{print $1}'
Error: no such file or directory

[root@rservername tmp]# cat test.sh
#!/bin/bash

set -x
echo "test"
podman ps | grep -i healthy | grep netbackup | awk '{print $1}'
bash shell error-handling grep podman
1个回答
0
投票

对于

not found error
,添加为脚本的第二行:

. ~/.bashrc

设置PATH变量。或者将其设置为锻造。

剩下的,我会做的,只有一根管子:

podman ps | awk '$NF=="healthy" && $2=="netbackup"{print $1}'

或者要处理输出,最好使用

jq
来解析您可以使用以下方法生成的
JSON

podman ps --format json

如果您向我展示此命令的原始输出,如果您不熟悉,我可以提供帮助

jq

© www.soinside.com 2019 - 2024. All rights reserved.