Datei ausführbar machen

Datei ausführbar machen

Beitragvon Mathias » 6. Mai 2016, 19:27 Datei ausführbar machen

Mit folgendem Code erzeige ich ein Bash-Script.
Wie kann ich es machen, das das Script das Attribut ausführbar bekommt ?

Code: Alles auswählen
procedure TForm1.Button1Click(Sender: TObject);
var
  sl: TStringList;
begin
  sl := TStringList.Create;
  sl.Add('#!/bin/bash');
  sl.Add('echo Mache irgendwas');
  sl.Add('read');
  sl.SaveToFile('test.sh');
  sl.Free;
end;
Zuletzt geändert von Mathias am 6. Mai 2016, 20:00, insgesamt 1-mal geändert.
Mit Lazarus sehe ich gün
Mit Java und C/C++ sehe ich rot
Mathias
 
Beiträge: 3993
Registriert: 2. Jan 2014, 17:21
Wohnort: Schweiz
OS, Lazarus, FPC: Linux (die neusten Trunc) | 
CPU-Target: 64Bit
Nach oben

Beitragvon MacWomble » 6. Mai 2016, 19:43 Re: Datei ausführbar machen

http://www.freepascal.org/docs-html/rtl ... chmod.html:

Code: Alles auswählen
Program Example23;
 
{ Program to demonstrate the Chmod function. }
 
Uses BaseUnix,Unix;
 
Var F : Text;
 
begin
  { Create a file }
  Assign (f,'testex21');
  Rewrite (F);
  Writeln (f,'#!/bin/sh');
  Writeln (f,'echo Some text for this file');
  Close (F);
  fpChmod ('testex21',&777);
  { File is now executable  }
  fpexecl ('./testex21',[]);
end.
Alle sagten, dass es unmöglich sei - bis einer kam und es einfach gemacht hat.
MacWomble
 
Beiträge: 514
Registriert: 17. Apr 2008, 00:59
Wohnort: Freiburg
OS, Lazarus, FPC: Mint 18.3 Cinnamon / CodeTyphon Generation V Plan 6.60 (FPC 3.1.1 Rev 39389) | 
CPU-Target: Intel i7 64/32 Bit
Nach oben

Beitragvon Mathias » 6. Mai 2016, 20:37 Re: Datei ausführbar machen

Danke, so sieht es momentan gut aus.
Was heisst das &777 ?

Code: Alles auswählen
procedure TForm1.Button1Click(Sender: TObject);
const
  datei = 'test.sh';
var
  sl: TStringList;
begin
  sl := TStringList.Create;
  sl.Add('#!/bin/bash');
  sl.Add('echo Mache irgendwas');
  sl.Add('read');
  sl.SaveToFile(datei);
  sl.Free;
  fpChmod(datei, S_IRWXU or S_IRGRP or  S_IROTH);
end;
Mit Lazarus sehe ich gün
Mit Java und C/C++ sehe ich rot
Mathias
 
Beiträge: 3993
Registriert: 2. Jan 2014, 17:21
Wohnort: Schweiz
OS, Lazarus, FPC: Linux (die neusten Trunc) | 
CPU-Target: 64Bit
Nach oben

Beitragvon jwdietrich » 6. Mai 2016, 21:20 Re: Datei ausführbar machen

Mathias hat geschrieben:Was heisst das &777 ?

777 heißt, dass die Datei für Eigentümer, Gruppe und alle anderen les- (4), schreib- (2) und ausführbar (1) ist (4 + 2 + 1 = 7).

Details sind recht gut auf https://wiki.ubuntuusers.de/Rechte/#Darstellungsarten und auf https://developer.apple.com/legacy/library/documentation/Darwin/Reference/ManPages/man1/chmod.1.html beschrieben. Das erste Beispiel bezieht sich auf Linux (Ubuntu), das zweite auf Mac OS X, aber im Prinzip ist das das gleiche.
jwdietrich
 
Beiträge: 129
Registriert: 20. Okt 2008, 19:50
Wohnort: Hattingen, NRW
OS, Lazarus, FPC: Mac OS X 10.4-10.10, Windows 2000-7, SUSE, Ubuntu, Raspbian (L 1.6.0, FPC 3.0.0) | 
CPU-Target: PowerPC, i386, ARM
Nach oben

Beitragvon Mathias » 6. Mai 2016, 22:20 Re: Datei ausführbar machen

Und was ist das & ?
Mit Lazarus sehe ich gün
Mit Java und C/C++ sehe ich rot
Mathias
 
Beiträge: 3993
Registriert: 2. Jan 2014, 17:21
Wohnort: Schweiz
OS, Lazarus, FPC: Linux (die neusten Trunc) | 
CPU-Target: 64Bit
Nach oben

Beitragvon mse » 7. Mai 2016, 08:26 Re: Datei ausführbar machen

Mathias hat geschrieben:Und was ist das & ?

Oktal.
http://www.freepascal.org/docs-html/cur ... 8-170001.6
mse
 
Beiträge: 1933
Registriert: 16. Okt 2008, 09:22
OS, Lazarus, FPC: Linux,Windows,FreeBSD,(MSEide+MSEgui 4.6,git master FPC 3.0.4,fixes_3_0) | 
CPU-Target: x86,x64,ARM
Nach oben

• Themenende •

Zurück zu Linux



Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 2 Gäste

porpoises-institution
accuracy-worried