【问题标题】:How to run C program from bash script with one or more arguments?如何使用一个或多个参数从 bash 脚本运行 C 程序?
【发布时间】:2019-09-17 01:00:32
【问题描述】:

这是我第一次尝试创建 bash 脚本,我有点困惑。

我正在尝试从 bash 脚本运行我的 c 程序,其中 c 程序可以采用一个或多个参数。如果 c 程序采用 1 个参数,它将根据输入的内容打印前 n 个素数。如果它采用多个参数,它将打印最大整数参数的前 n 个素数,然后是所有可能范围之间的素数论据。我在使用 bash 脚本调用 c 程序时遇到问题。现在我只是想让它找到最大的整数,然后打印前 n 个整数:

file=$1
max=$2

shift
for arg in "$@"
do
    if [ $arg -gt $max ]; then
      max=$arg
    fi
done

for file in $path
do
    ./app "$file" "$max"
done

当我运行 bash 脚本时,如果我键入:

bash ./prime.sh ./prime 4 3 1

我应该得到:2, 3, 5, 7

我没有包含 c 代码,因为它目前正在运行。

谢谢!

【问题讨论】:

  • 什么是./prime
  • 你在哪里设置$path
  • 你的C程序的名字是./app还是./prime./app 是做什么的?
  • ./prime 是我以前对c程序的称呼。我在想我只是拿了第一个参数./prime 并用它来执行程序。所以我需要在bash脚本中设置路径吗?我正在查看其他几个问题,看到他们使用./app,所以我认为这是在 bash 脚本中调用程序的某种方式。
  • 你为什么设置file=$1然后使用for file in $path而不是使用那个?

标签: c bash shell


【解决方案1】:

摆脱for 循环,只需这样做:

"$path" "$max"

使用$max 参数在$path 中运行程序。

我不知道./app是什么,但是你不需要运行另一个程序来执行C程序。

【讨论】:

  • 谢谢!我可以发誓我试过了,但显然没有!
猜你喜欢
  • 2011-03-01
  • 2023-01-13
  • 2010-10-13
  • 2018-11-26
  • 1970-01-01
  • 1970-01-01
  • 2018-06-19
  • 2017-12-12
相关资源
最近更新 更多