gpt4 book ai didi

bash/shell 多次读取 LINE

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

我有一个 #!/bin/sh 脚本,我需要多次读取管道输入。

我迭代它的方式似乎丢弃了它,例如以下内容;

while read LINE; do
echo "-- $LINE"
done

while read LINE; do
echo "## $LINE"
done

调用时

find ~/Desktop | ./my.sh

产生

-- /Users/me/Desktop/some.txt
-- /Users/me/Desktop/other.txt

不是

-- /Users/me/Desktop/some.txt
-- /Users/me/Desktop/other.txt
## /Users/me/Desktop/some.txt
## /Users/me/Desktop/other.txt

如果我需要多次使用它,有没有办法保留这个输入?

谢谢。

最佳答案

您需要自己保存输入。

#!/bin/sh

i=0;
while read LINE; do
LINES[$i]="${LINE}"
i=$((i+1))
done

for ENTRY in "${LINES[@]}"; do
echo "-- ${ENTRY}"
done


for ENTRY in "${LINES[@]}"; do
echo "## ${ENTRY}"
done

示例输出:

ls /bin/b*|./test.sh
-- /bin/basename
-- /bin/bash
## /bin/basename
## /bin/bash

关于bash/shell 多次读取 LINE,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17221488/

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