Escribí un guion. Cuando comienza, no se detendrá y sigue obteniendo datos de Internet. Puedo llamarlo de esta manera:
cd /User/Desktop/project/internetScanner/
python3 main.py start
Pero me gustaría llamarlo directamente desde la terminal de esta manera, dentro del destino:
internetScanner start
¿Como lo puedo hacer?
linux
bash
python
shell-script
Ted Wong
fuente
fuente

Respuestas:
Probablemente debería cambiar el nombre de su archivo
main.pyainternetScanner. Las extensiones en * nix son puramente opcionales. No debería importar aquí.Luego, agregue la siguiente línea a este archivo, justo al principio:
Esto asegurará que cuando el shell ejecute el archivo, sepa usarlo
python3para interpretar el contenido. Esto se conoce como el Shebang . Ahora, haga que el archivo sea ejecutable:Ahora puede ejecutar su programa desde dentro
/User/Desktop/project/internetScanner/:Su programa se ejecutará en primer plano y continuará ejecutándose hasta que presione Ctrl- C. Si no desea esto, también puede iniciar el programa en segundo plano, agregando un ampersand después del comando:
Esto permitirá que su programa se ejecute, pero puede continuar usando su shell. Esto se llama control de trabajo, y hay un tutorial simple al respecto aquí .
Si ahora desea poder ejecutar el programa desde cualquier lugar del sistema, debe agregar el
internetScannerdirectorio a suPATH: ¿Qué son las RUTA y otras variables de entorno, y cómo puedo configurarlas o usarlas?fuente
X &no separa el proceso del shell de control, solo pone en segundo plano el proceso, lo que significa que si ese shell sale, recibirá la señal TERM; por lo que si usted no quiere que se debe utilizar de separación ,detach ./internetScanner start.nohup,disownoat, etcétera. ¿Cómo desconecto completamente un proceso de la Terminal?main.pysiempre que esté vinculado ainternetScanneralgún lugar en $ PATH.Suponiendo que no
/User/Desktop/project/internetScanner/se necesitan otros archivos , si desea instalar para un solo usuario, enlace (ln -s)main.pya$HOME/bin/internetScanner. Probablemente necesites mkdir$HOME/binprimero.La próxima vez que inicie sesión,
$HOME/binprobablemente se agregará a su RUTA. Si desea que esté disponible para todos los usuarios, cópielo en/usr/local/bin.Si debe ejecutarse
/User/Desktop/project/internetScanner/, comience importandoosy llamandoo cree una secuencia de comandos de inicio en
$HOME/bino/usr/local/binque cambie/User/Desktop/project/internetScanner/y ejecute la secuencia de comandos.fuente
Poner
alias internetScanner "python /User/Desktop/project/internetScanner/main.py"en el archivo .aliases (para csh). Para bash, ponalias internetScanner="python /User/Desktop/project/internetScanner/main.py".bashrc. Después de eso, puede usar internetScanner desde cualquier lugar.fuente
.aliasesarchivo. ¿Es eso algo estándar para Bash? ¿o tienes que buscarlo explícitamente en tu.bashrc?