我有问题。我想在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。
答案 0 :(得分:3)
我猜解决方案是缺少空格char?
更改
Pro1.CommandLine:=(('sudo open'+LE_Path.Text));
到
Pro1.CommandLine:=(('sudo open '+LE_Path.Text));
# ----------------------------^--- added this space char.
但如果您是初学程序员,我的其他评论仍值得考虑:
尝试在第一段代码中使用sudo可能会增加一组额外的问题。所以......首先要更轻松地工作,也许
/ bin / ls -l / path / to / some / dir / that / has / only / a / few / files。
了解如何打印将要执行的语句。这是最基本的调试形式,任何语言都应该支持。
你的英语很好地传达了你的问题,包括示例代码和合理(不完美)的问题描述"我们"能够帮助你。通常,一个好问题包含重新创建问题的最少步骤。或者,如果您正试图操纵数据,
一个。小样本输入, 湾来自同一输入的样本输出 C。你最好的"你试过的代码 d。你当前的输出 即你对它为什么不起作用的看法 和评论通常表明你尝试过的其他事情。