[BASH] Ejecutar un script pasandole argumentos desde otro

Iniciado por ivan_esp, 5 Octubre 2014, 17:40 PM

0 Miembros y 1 Visitante están viendo este tema.

ivan_esp

Hola a todos,
Resulta que tengo un script que toma como argumento el pid de un proceso e
imprime por pantalla en formato de columnas el PID, PPID, ESTADO y COMANDO que ejecuta dicho proceso.

Es decir esto:

PID PPID ESTADO COMANDO
8900 8880 S bash

Y ahora lo que necesito es otro script que proporcione al script anterior todos los
PID de los procesos del sistema, para que imprima su información.

El primer script es este:

Código (bash) [Seleccionar]


   #!/bin/bash
   #inf_process
   
   #echo -e "PID\tPPID\tESTADO\tCOMANDO\n"
   
   #awk '/^Pid/ { printf $1 } /PPid/ { print $1 } /State/ { printf $1 } /Name/ { printf $1 }' /proc/$1/status
   
   
   
   #awk '/^Pid/ { printf $2 } /PPid/ { print $2 } /State/ { printf $2 } /Name/ { printf $2 }' /proc/$1/status
   
   awk '/^Pid/ { printf $1}' /proc/$1/status
   echo -en "\t"
   awk '/PPid/ { printf $1}' /proc/$1/status
   echo -en "\t"
   awk '/State/ { printf $1}' /proc/$1/status
   echo -en "\t"
   awk '/Name/ { print $1}' /proc/$1/status
   
   awk '/^Pid/ { printf  $2}' /proc/$1/status
   echo -en "\t"
   awk '/PPid/ { printf  $2}' /proc/$1/status
   echo -en "\t"
   awk '/State/ { printf  $2}' /proc/$1/status
   echo -en "\t"
   awk '/Name/ { print  $2}' /proc/$1/status




Alguna idea de como hacer el otro.
La unica forma que se me ocurre es obtener del comando ps los PID ,almacenarlos en un array ,recorre el array e ir ejecutando el primer script pasandole el PID,pero no se si esto se puede hacer en los script.

Saludos y Gracias

ivan_esp

Nadie puede darme una idea de por donde tirar o que funcion utilizar ,etc?

Saludos y Gracias

daryo

#2
que tal
Código (bash) [Seleccionar]
ls /proc/ | grep -o '\<[0123456789]*\>'  | awk '{print "./sucomando.sh "$1}' | bash

y si bash puede manejar funciones y arrays es muy completo. no creo que hagan falta dos archivos para hacer eso.
buenas

ivan_esp

Muchas gracias daryo,
funciona perfectamente,mas simple de lo que yo pensaba .

Saludos y Gracias :)