MacOSCatalinaでZshを使用しています。
私は読んでいましたPythonで退屈なものを自動化するそしてその中で作者はターミナルにmapit
と入力するだけでmapIt.py
を実行します。
これを行うために、コードの先頭にシバンを追加しました。
#!/usr/bin/env python
また、chmod +x script.py
でマークを付け、ディレクトリをPATH
に追加しました。
ただし、実行するには、script.py
と入力する必要があります。 script
だけを入力しても機能しません。
これどうやってするの?
私は思う 私はそれをオンラインで見つけた 。このフラグメント
_C:\> mapit 870 Valencia St, San Francisco, CA 94110
_
(つまり、_C:\>
_)およびその他の詳細は、作成者がWindowsを使用していることを示しています。 Windowsでは、拡張子なしで名前を入力して、特定の拡張子のファイルを実行する方法があります。作者はおそらく_.py
_の機能を有効にしています。これを比較してください:Pythonスクリプトを_.py
_拡張子を指定せずにWindowsで実行する。
Unix/Linuxでは、_.py
_の_script.py
_は名前の一部にすぎません。拡張の概念はありません(おそらくユーザーの心の中の概念以外)。
したがって、スクリプトに_script.py
_ではなくscript
という名前を付けるだけです。 _script.py
_またはscript
のどちらを入力しても同じスクリプトを実行できるようにする場合は、スクリプトを1つの名前の下に配置し、別の名前から実際のスクリプトへのシンボリックリンクを作成します。
(少なくともLinuxでは)script(1)
ユーティリティがあることに注意してください。 PATH
に応じて、コマンドscript
がスクリプトまたはユーティリティ(インストールされている場合)を実行します。
別のアプローチは、foo
が_foo.py
_(任意のfoo
に対して)になった場合に、シェルに_command not found
_の実行を試行させることです。この一般的な質問を参照してください:
例としてこれらの2つの答え(Bash用であることに注意してください):
Zshでは、関数の名前は _command_not_found_handler
_ です。例の1つをZshに移植して、ソリューションを構築します。