LazarusからShellを起動

LazarusからShellを起動してみました

環境
Ubuntu16
Lazarus 2.0.10

ポイント
TProcessからShellを起動
Shellの完了待ちとする方法と、完了待ちしない方法を選択できます

参考ページ
https://wiki.freepascal.org/Executing_External_Programs
https://stackoverflow.com/questions/26977422/execute-commands-in-the-linux-commandline-lazarus-free-pascal

設定
uses
,Process; //追加

プログラム

procedure TForm1.Button1Click(Sender: TObject);
var
  AProcess: TProcess;
begin
  AProcess := TProcess.Create(nil);
  AProcess.CommandLine:='/bin/bash /home/user/xxx/test02.sh';
  AProcess.Options := AProcess.Options + [poWaitOnExit];
  AProcess.Execute;

  AProcess.Free;
  button1.Caption:='ok';
end;  

以下をなくすと、完了を待たずに次のステップに進みます。

  AProcess.Options := AProcess.Options + [poWaitOnExit];

test02.shの例
動作確認用

#!/bin/bash

cd /home/user/xxx/
ls >> /home/user/xxx/log01.txt

Python起動例

#!/bin/bash

source /home/user/env/bin/activate
cd /home/user/xxx/
python test.py
deactivate