Los scripts Bash son muy útiles y pueden ahorrar mucho tiempo de programación. Entonces, ¿cómo se inicia un script bash en un programa C++? Además, si sabes cómo hacer que el usuario se convierta en el súper-usuario también sería agradable. ¡Gracias!Cómo ejecutar un script bash desde el programa C++
Respuesta
Utilice la función system
.
system("myfile.sh"); // myfile.sh should be chmod +x
#include <stdio.h>
#include <stdlib.h>
// ....
system("my_bash_script.sh");
¿Qué pasaría si el script bash hiciera eco de texto a tty? P.ej. ¿y si fuera un "gato"? ¿Podría el programa c tener esa salida? –
La única manera estándar depende de la implementación mandato es utilizar la función de system()
stdlib.h
.
Además, si usted sabe cómo hacer que el usuario se convierta en el súper usuario que también sería bueno.
¿Desea que la secuencia de comandos se ejecute como superusuario o desea elevar los privilegios del ejecutable C? El primero se puede hacer con sudo
, pero hay algunas cosas que debe saber antes de poder usar sudo
.
StackOverflow: How to execute a command and get output of command within C++?
StackOverflow: (Using fork,pipe,select): ...nobody does things the hard way any more...
Además, si usted sabe cómo hacer que el usuario se convierta en el super-usuario que estaría bien también. ¡Gracias!
sudo. su chmod 04500. (setuid() & seteuid(), pero requieren que ya sea root. E..g. chmod'ed 04 ***.)
Tenga cuidado. Estos pueden abrir "interesting" agujeros de seguridad ...
Dependiendo de lo que esté haciendo, es posible que no necesite root. (Por ejemplo: a menudo voy a dispositivos chmod/chown/dev (puertos serie, etc.) (bajo sudo root) para que pueda usarlos desde mi software sin ser root. Por otro lado, eso no funcionan tan bien al cargar/descargar módulos kernel ...)
Dado que esta es una pregunta muy antigua, y este método no se ha agregado (aparte de la función de llamada system()
), creo que sería útil incluir la creación el script de shell con el binario C mismo. El código del shell se alojará dentro del archivo fuente file.c
. Aquí está un ejemplo de código:
#include <stdio.h>
#include <stdlib.h>
#define SHELLSCRIPT "\
#/bin/bash \n\
echo -e \"\" \n\
echo -e \"This is a test shell script inside C code!!\" \n\
read -p \"press <enter> to continue\" \n\
clear\
"
int main() {
system(SHELLSCRIPT);
return 0;
}
Básicamente, en pocas palabras (juego de palabras), estamos definiendo el nombre del script, dar contenido a la secuencia de comandos, encerrándolas entre comillas dobles (mientras que la inserción se escapa adecuados para ignorar comillas dobles en el código del shell), y luego llamar al nombre de ese script, que en este ejemplo es SHELLSCRIPT
usando la función system()
en main()
.
- 1. Cómo ejecutar un script .sql desde bash
- 2. Ejecutar un script bash desde un script R
- 3. ¿Cómo ejecutar un programa Java desde C#?
- 4. Script Bash para ejecutar el script php
- 5. cómo ejecutar PHP desde un script bash bajo usuario root
- 6. ejecutar script bash desde php sin esperar
- 7. Llamar a un script desde un programa setuid root C - script no se ejecuta como root
- 8. Ejecutar un programa desde ASP.NET C#
- 9. Ejecutar programa desde dentro de un programa C
- 10. ¿Cómo ejecutas SQL desde un script bash?
- 11. Script Bash para probar automáticamente la salida del programa - C
- 12. ¿Cómo ejecutar un script python desde java?
- 13. ¿Cómo ejecutar comandos de script desde variables?
- 14. Ejecutar/invocar script de lotes de Windows desde el script sh o bash
- 15. Ejecutando script bash desde java
- 16. Ejecutar programa externo desde Java
- 17. ¿Cómo ejecutar script bash línea por línea?
- 18. Ejecutar PowerShell-Script desde la aplicación C#
- 19. Comprobando el valor de retorno de un programa C en un script bash?
- 20. ¿Cómo ejecutar un script de shell desde C en Linux?
- 21. ¿Puedo ejecutar 'su' en el medio de un script bash?
- 22. ¿Cómo ejecutar un programa externo desde Node.js?
- 23. BASH cómo ejecutar un comando en la terminación del script?
- 24. Ejecutar el comando cuando se detiene el script bash
- 25. Ejecutar comandos Bash desde PHP
- 26. cómo ejecutar un programa .exe mediante script php
- 27. ¿Cómo ejecutar una aplicación interactiva desde Ant script script?
- 28. Ejecutar programa desde el conjunto de bytes
- 29. Creando .deb para instalar el programa de script bash
- 30. VirtualEnv iniciado desde un script bash
Gracias pero olvidó incluir esto: system ("./ myfile.sh"); – Kredns
Funcionará sin. si la carpeta está en su ruta :) –
El directorio actual '.' * no debe * estar en su' $ PATH'. –