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