![bash スクリプトで実行するときに、Python スクリプトにパラメータを渡すにはどうすればよいですか?](https://rvso.com/image/1000368/bash%20%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%97%E3%83%88%E3%81%A7%E5%AE%9F%E8%A1%8C%E3%81%99%E3%82%8B%E3%81%A8%E3%81%8D%E3%81%AB%E3%80%81Python%20%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%97%E3%83%88%E3%81%AB%E3%83%91%E3%83%A9%E3%83%A1%E3%83%BC%E3%82%BF%E3%82%92%E6%B8%A1%E3%81%99%E3%81%AB%E3%81%AF%E3%81%A9%E3%81%86%E3%81%99%E3%82%8C%E3%81%B0%E3%82%88%E3%81%84%E3%81%A7%E3%81%99%E3%81%8B%3F%20.png)
コマンドラインから動作するアプリケーションを作成しようとしています。たとえば、ですapplication -h
。そこで、 を実行する bash スクリプトを に配置しました。 次の行で/usr/local/bin/
を実行します。しかし、コマンドを実行しても を受け取りません。ただし、 で同じコマンドを使用してエイリアスを実行すると、正常に動作します。パラメータを使用して動作するように bash スクリプトを変更するにはどうすればよいでしょうか。また、エイリアスは動作するのにスクリプトが動作しないのはなぜでしょうか。cd /path/to/application
./Main.py
-h
.bashrc
答え1
シェルスクリプトはPythonスクリプトに引数を渡したいかどうかを知る方法がありません。
./Main.py "$@"
また、 も使用しないでくださいcd
。これは冗長です。 ./Main.py へのフルパスを使用するか、必要でない限りラッパー スクリプトをまったく使用しない方がよいでしょう。 ./Main.py を $PATH 変数の一部であるディレクトリの 1 つに配置し、Python スクリプトを直接呼び出します。
肝心なのは、あなたがしようとしていることはおそらく間違っていて不必要であり、もっと良い方法があるということです。