gpt4 book ai didi

linux - 如何将值传递给另一个代码以在 linux 中执行进程

转载 作者:太空宇宙 更新时间:2023-11-04 12:30:47 25 4
gpt4 key购买 nike

我有如下代码,例如 script1:

  1. 你好,我是约翰
  2. 你好,我是迈克尔
  3. 你好,我是安德鲁

此代码无法编辑。但是如果我们输入 1 它将打印 1. Hello this is John , 等等..

我想用 bash 编写一个脚本,它会自动接受输入而无需用户手动输入。

我试过这样创建了一个文件 test.txt :

1
2
3

并以这种方式执行:./script1 < test.txt , 但它像无限循环一样不断迭代。

任何人都可以试试这个。我只想要 3 个输出。

最佳答案

我对你的问题的理解是你试图接受来自标准输入的输入,但你有不可变的代码需要位置参数。如果您发布了您无法修改的脚本的相关部分,将会很有帮助。

所以,我假设你有这样的东西,它接受位置参数:

#!/bin/bash

names=("" John Michael Andrew)

say_hello_by_id() {
while [ $# -gt 0 ]; do
echo "Hello this is ${names[$1]}"
shift
done
}

echo "$(say_hello_by_id $@)"

然后,您需要编写一个 shim,它从 stdin 读取值并将它们作为参数传递:

while read input; do
./existing.sh "$input"
done

然后做:

./shim.sh < inputs.txt

关于linux - 如何将值传递给另一个代码以在 linux 中执行进程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43377922/

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