Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C 构建执行作为参数传递的程序的简单shell脚本_C_Linux_Bash_Shell - Fatal编程技术网

C 构建执行作为参数传递的程序的简单shell脚本

C 构建执行作为参数传递的程序的简单shell脚本,c,linux,bash,shell,C,Linux,Bash,Shell,我正在建立一个程序,它有助于在内存中调试C程序。我打电话 execlp("gnome-terminal","gnome-terminal","-e",command,(char*)0); 打开要调试的程序运行的新终端窗口。我这样做是为了不让调试信息与用户的程序输出混杂在一起。因为我需要在运行users程序之前设置一个环境变量,command var实际上是shell脚本的名称,我将users程序作为第一个参数传递给它 这是我的剧本: #!/bin/bash export LD_PRELOAD

我正在建立一个程序,它有助于在内存中调试C程序。我打电话

execlp("gnome-terminal","gnome-terminal","-e",command,(char*)0);
打开要调试的程序运行的新终端窗口。我这样做是为了不让调试信息与用户的程序输出混杂在一起。因为我需要在运行users程序之前设置一个环境变量,command var实际上是shell脚本的名称,我将users程序作为第一个参数传递给它

这是我的剧本:

#!/bin/bash

export LD_PRELOAD="./mylib.so"
$1
这对于没有参数的程序很好,但是如果用户也向程序提供参数,会发生什么呢

例如,我希望这样调用我的脚本:

myScript.sh usersProgram arg1 arg2 etc
如何在脚本中正确运行users程序并将所有参数传递给它


谢谢您使用
“$@”
,它将正确处理所有参数。

使用
“$@”
,它将正确处理所有参数。

假设要编程的参数总是从第二个参数开始,我建议这样做:

#!/bin/bash

PROG=$1
shift
$PROG "$@"

实际上,只需指定“$@”而不是上面的三行也可以。但通过这种方式,您可以在实际执行$PROG之前轻松地基于$PROG进行一些操作。

假设要编程的参数总是从第二个参数开始,我建议这样做:

#!/bin/bash

PROG=$1
shift
$PROG "$@"
实际上,只需指定“$@”而不是上面的三行也可以。但通过这种方式,您可以在实际执行$PROG之前轻松地基于$PROG进行一些操作