将linux启动器配置为传递的变量

将linux启动器配置为传递的变量,linux,terminal,Linux,Terminal,我发现我可以通过右键单击桌面在linux中使用一种叫做启动器的东西 我已经将其设置为在终端中运行我的程序,我对此感到高兴,但我想在它运行时给它一些默认值 我猜我应该把这些值放在程序路径之后,并在它们之前加上-before,但我不确定我在做什么 有人可以给我指一个文档或其他东西,上面列出了包含值的方法以及我可以在路径中包含的内容 如果我这样做,我的程序将如何读取它们?他们会被送到梅因吗 是否有可能设置为程序在启动时不知道有多少变量,但会读取尽可能多的变量 我使用C++。 你不需要C++来做这个。基

我发现我可以通过右键单击桌面在linux中使用一种叫做启动器的东西

我已经将其设置为在终端中运行我的程序,我对此感到高兴,但我想在它运行时给它一些默认值

我猜我应该把这些值放在程序路径之后,并在它们之前加上-before,但我不确定我在做什么

有人可以给我指一个文档或其他东西,上面列出了包含值的方法以及我可以在路径中包含的内容

如果我这样做,我的程序将如何读取它们?他们会被送到梅因吗

是否有可能设置为程序在启动时不知道有多少变量,但会读取尽可能多的变量


<>我使用C++。

你不需要C++来做这个。基本上,你做的和你自己差不多 将在Windows下执行,但具体细节取决于窗口 您正在使用的管理器(Gnome、KDE等)。节目信息是 通过
argv
传递到main(这也是获取它的首选方式
我相信是在窗户里)。您无权访问原始命令行

如果我记得正确运行终端

rxvt -backspacekey  -sl 2500 -tn msys -geometry 80x25 -e 'script.sh -param' --login -i
-e命令参数。。。要执行的命令

因此,创建一个名为myApp.sh的文件(相当于windows上的.bat)

输入以下内容:

!/bin/sh
rxvt -geometry 80x25 -e 'yourExecutableName yourCommandLine' --login -i
保存后,只在文件上CHMOD+X(因此Linux将其视为可执行文件)

之后,您可以从机器上的任何位置(如果dir在PATH环境变量中)或通过在Gnome文件管理器中双击来运行它

如果还需要将参数传递给shell,则可以使用 $0、$1、$2(相当于MS批处理中的%1、%2)

对于命令行,C/C++程序通常以main函数开始

int main (int argc, char ** argv) {
  exit(0);
}
argc是输入中接收的参数数,而argv是指向char*(实际命令行)数组的指针,您可以直接解析它们


注:请注意,我使用rxvt,您可能想将其更改为xterm o gterm或您喜欢使用的任何终端。

对不起,我不知道您在说什么。我把代码放在哪里?不,我想要一个我可以双击的文件,这就是脚本。该脚本将打开一个终端并运行我的C++程序并传递某些字母。我怎样才能知道我使用的是什么windows manager?Linux上常用的脚本语言是
bash
,但你几乎可以使用任何东西。你可能不需要它;配置按钮时,可以指定任意命令行。窗口管理器应具有可视性;如果没有其他内容,则某处会有一个about按钮,它会告诉您哪个版本,等等。传递给程序的参数会显示在
argv
中。什么按钮?我在看centos机器的桌面,我想在那里放一个文件,当点击它时,会以同样的方式打开终端,顶部栏中的按钮会工作,但它会传递变量。我真的被你所说的搞糊涂了。图标,按钮或者其他什么。当你点击桌面上的某个东西时,你询问了反应。这是通过在桌面上创建一个图标,并将其配置为调用您的程序来完成的。关于参数,您有几种选择:使用不同的参数创建多个图标,从剪贴板(选定文本)获取参数,或弹出对话框输入参数(使用某种支持对话框的脚本语言)。参数将在
argv
中传递给应用程序。
int main (int argc, char ** argv) {
  exit(0);
}