在Linux命令行中执行命令[Lazarus / Free Pascal]

时间:2014-11-17 16:39:14

标签: command-line lazarus freepascal

我有问题。我想在linux的命令行中执行一些命令。我测试了TProcess(所以我正在使用Lazarus),但现在当我开始编程时,程序没有任何内容。

这是我的代码:

uses [...], unix, process;
[...]
var LE_Path: TLabeledEdit;
[...]

Pro1:=TProcess.Create(nil);
Pro1.CommandLine:=(('sudo open'+LE_Path.Text));
Pro1.Options := Pro1.Options;  //Here i used Options before
Pro1.Execute;

使用本程序,我想用sudo打开文件(程序在用户界面上运行)

- >抱歉我的英语不好;对不起,问题是:我第一次使用StackOverflow。

1 个答案:

答案 0 :(得分:3)

我猜解决方案是缺少空格char?

更改

Pro1.CommandLine:=(('sudo open'+LE_Path.Text));

Pro1.CommandLine:=(('sudo open '+LE_Path.Text));
# ----------------------------^--- added this space char.

但如果您是初学程序员,我的其他评论仍值得考虑:

  1. 尝试在第一段代码中使用sudo可能会增加一组额外的问题。所以......首先要更轻松地工作,也许

    / bin / ls -l / path / to / some / dir / that / has / only / a / few / files。

  2. 了解如何打印将要执行的语句。这是最基本的调试形式,任何语言都应该支持。

  3. 你的英语很好地传达了你的问题,包括示例代码和合理(不完美)的问题描述"我们"能够帮助你。通常,一个好问题包含重新创建问题的最少步骤。或者,如果您正试图操纵数据,

    一个。小样本输入, 湾来自同一输入的样本输出 C。你最好的"你试过的代码 d。你当前的输出 即你对它为什么不起作用的看法     和评论通常表明你尝试过的其他事情。