gpt4 book ai didi

在 BASH 中从命令行创建变量

转载 作者:太空宇宙 更新时间:2023-11-03 23:27:53 25 4
gpt4 key购买 nike

我是 bash 的新用户,请多多包涵。我正在尝试运行一个 bash 脚本,该脚本将从命令行获取输入,然后运行一个 c 程序,并将其输出到其他 c 程序。例如,在命令行我会输入如下:

$ ./script.sh -flag file1 < file2

在我的脚本中:

./c_program -flag file1 < file2 | other_c_program

问题是,-flagfile1file2 需要可变。现在我知道对于 -flag 和 file 这很简单——我可以做到

FLAG=$1
FILE1=$2
./c_program $FLAG FILE1

我的问题是:有没有办法将脚本中的变量分配给 file2

编辑:程序要求脚本被称为$ ./script.sh -flag file1 < file2

最佳答案

你可以简单地运行 ./c_program ,它会从父脚本继承标准输入。它将从其父进程正在读取的任何地方读取。

FLAG=$1
FILE1=$2
./c_program "$FLAG" "$FILE1" | other_c_program # `< file2' is implicit

此外,引用变量扩展也是个好主意。这样,如果 $FILE1 包含空格或其他棘手的字符,脚本仍然可以工作。

关于在 BASH 中从命令行创建变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22662573/

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