Get system command output: Difference between revisions

Content added Content deleted
(Added Ada example)
Line 7: Line 7:
* [[Execute_a_system_command | Execute a system command]]
* [[Execute_a_system_command | Execute a system command]]
<br><br>
<br><br>

=={{header|Ada}}==
{{works with|GNAT}}
<lang Ada>with Ada.Text_IO; use Ada.Text_IO;
with Ada.Characters.Latin_1; use Ada.Characters.Latin_1;
with GNAT.Expect; use GNAT.Expect;
with GNAT.OS_Lib; use GNAT.OS_Lib;
with GNAT.String_Split; use GNAT.String_Split;

procedure System_Command is
Command : String := "ls -l";
Args : Argument_List_Access;
Status : aliased Integer;
Separators : constant String := LF & CR;
Reply_List : Slice_Set;
begin
Args := Argument_String_To_List (Command);
-- execute the sytem command and get the output in a single string
declare
Response : String :=
Get_Command_Output
(Command => Args (Args'First).all,
Arguments => Args (Args'First + 1 .. Args'Last),
Input => "",
Status => Status'Access);
begin
Free (Args);
-- split the output in a slice for easier manipulation
if Status = 0 then
Create (S => Reply_List,
From => Response,
Separators => Separators,
Mode => Multiple);
end if;
end;
-- do something with the system output. Just print it out
for I in 1 .. Slice_Count (Reply_List) loop
Put_Line (Slice (Reply_List, I));
end loop;

end System_Command;</lang>


=={{header|AWK}}==
=={{header|AWK}}==