pourquoi `. / file.py` fonctionnait mais que` bash file.py` ne fonctionnait pas?


0

Pourquoi ./file.py travaillait, mais bash file.py ne fonctionne pas?
Quand je cours bash file.py ou . file.py ou source file.py obtenir une erreur comme ceci:
file.py: line 4: syntax error near unexpected .....
Mais ./file.py fonctionne bien.

file.py
#!/usr/bin/python3.4 if __name__ == "__main__": print("something")

Réponses:


4

Lorsque vous lancez un script (en tant que commande), il examine le hash-bang ( #! ) pour savoir quoi utiliser pour démarrer le script. Dans votre script, je parie que ça commence par #!/usr/bin/python ou similaire. Quand vous commencez comme ./script.py, il lit cette première ligne et exécute /usr/bin/python ./script.py secrètement.

Si vous le préférez en utilisant bash ./script.py, il s’attend à ce que l’interprète soit Bash, pas Python.


1
Plus précisément, si vous utilisez bash ./script.py, il essaie de l'interpréter comme un script bash au lieu de python. Ses ne pas un script bash, donc la syntaxe est complètement fausse, et le résultat est erroné.
Gordon Davisson
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.