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.py
ainternetScanner
. 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
python3
para 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
internetScanner
directorio 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
,disown
oat
, etcétera. ¿Cómo desconecto completamente un proceso de la Terminal?main.py
siempre que esté vinculado ainternetScanner
algú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.py
a$HOME/bin/internetScanner
. Probablemente necesites mkdir$HOME/bin
primero.La próxima vez que inicie sesión,
$HOME/bin
probablemente 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 importandoos
y llamandoo cree una secuencia de comandos de inicio en
$HOME/bin
o/usr/local/bin
que 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
.aliases
archivo. ¿Es eso algo estándar para Bash? ¿o tienes que buscarlo explícitamente en tu.bashrc
?