gpt4 book ai didi

linux - 遍历 ls 输出不会在 bash 中发生

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:57:01 25 4
gpt4 key购买 nike

我正在尝试ls 目录并将它们打印出来,但没有显示任何内容。我能够 SSH 并执行第一个密码。但是,for 循环中的任何内容都没有输出。我肯定知道有一些名为 event-test- 的目录,因为我是手动完成的。我手动输入了目录 (/data/kafka/tmp/kafka-logs/) 并运行了这段代码并出现了正确的输出所以我不确定为什么

手动输入有正确的输出:

for i in `ls | grep "event-test"`; do echo $i; done;

脚本:

for h in ${hosts[*]}; do
ssh -i trinity-prod-keypair.pem bc2-user@$h << EOF
sudo bash
cd /data/kafka/tmp/kafka-logs/

pwd
for i in `ls | grep "event-test-"`; do
pwd
echo $i;
done;
exit;
exit;

EOF

done

最佳答案

这是因为

`ls | grep "event-test-"`

在您的本地主机上执行,而不是在远程主机上执行。除了解析 ls 很容易出错,甚至不需要。你可以这样做:

for h in "${hosts[@]}"; do
ssh -t -t trinity-prod-keypair.pem bc2-user@$h <<'EOF'
sudo bash
cd /data/kafka/tmp/kafka-logs/
pwd
for i in *event-test-*; do
pwd
echo "$i"
done
exit
exit
EOF
done

关于linux - 遍历 ls 输出不会在 bash 中发生,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34211800/

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