2016-12-12 12 views
-1

使用しているPythonのバージョンに基づいてファイル名を持つフォルダがあります。Bash Script Help:ファイル内の一致する文字に基づいてスクリプトでコマンドを作成する方法

PyICU-1.9.5-cp27-cp27m-macosx_10_6_x86_64.whl 
PyICU-1.9.5-cp35-cp35m-macosx_10_6_x86_64.whl 

私は35または27を検出し、その後pip install <filename>を実行するためにはbashを使用したいです。私はGitHub Gist that has this hard codedを持っていますが、ファイル名をハードコーディングする代わりに、バージョンを検出し、そのバージョンのファイル名を選び、新しいコマンドで使用したいと思います。

ファイル名に基づいてpip installコマンドを変更したいと思います。私はPythonのバージョンを検出するいくつかのコードを発見した。次の作品は何ですか? が34を検出したので、::私はこれを構築することができるように

#from http://stackoverflow.com/questions/6141581/detect-python-version-in-shell-script 
python -c 'import sys; print(sys.version_info[:])' 

は、どのように私は、CPの後に数字を検出しない、より詳細な説明については pip installPyICU-1.9.5-cp34-cp34-macosx_10_6_x86_64.whl

答えて

0
#!/bin/bash 
#Assuming $ver holds the version string... 
ver=$(echo "$ver" | awk -F - '{print $3}' | sed 's/^..//') 

awk -F - '{print $3}'はフィールドセパレータとして-を使用し、3番目のフィールドを返します。この例の3番目のフィールドは、cp34として返されます。

sed 's/^..//'は最初の2文字を削除し、残りの部分を返します。この場合は34です。あなたも、ファイル名からのバージョンを抽出し、ちょうどフォルダ内にあるファイルを実行する必要はありませんので

0

、あなたが行うことができます。

cd dist/ && 
filename=$(ls|grep 'PyICU-') 
pip install $filename 
関連する問題