質問

パスから情報を使用して関連するRPM名を作成するMakeFileを作成しようとしています。 2つの異なる可能なパスがあるとします。

PATH1 = /usr/local/home/jsmith/code/main
PATH2 = /usr/local/home/jsmith/code/dev/ver2

パスで「メイン」が検出された場合、RPM名に「メイン」を検出して追加したいと思います。パスで「dev」が検出された場合、rpm名に「ver2」を検出して追加する必要があります。

私はシェルスクリプトを初めて使用していますが、どこから始めればよいかについては良い考えがありません。 Pythonのようなもので簡単にこれを行うことができますが、Makefileのためにシェルで行う必要があります。

パス内の「メイン」は一定ですが、「メイン」が存在しない場合、開発パス名を抽出する必要があります。これがいくつかの刈り取りの例です:

/usr/local/home/jsmith/code/main/usr/local/home/jsmith/code/dev/ver_usa/usr/local/homith/jsmith/dev/ver_mexico/usr/home/home/jsmith/code /dev/ver3

「dev」が存在する場合、「ver_usa」、「ver_mexico」、「ver3」などを抽出する必要があります。

役に立ちましたか?

解決

「メイン」と「ver2」が一定ではないと仮定して、このようなもの

some_rpm_name="some rpm"
PATH=/usr/local/home/jsmith/code/main
#PATH2=/usr/local/home/jsmith/code/dev/ver2
s=${PATH##*/}
case "$s" in
  *main ) RPM_NAME="${some_rpm_name}_main";;
  *ver2) RPM_NAME="${some_rpm_name}_ver2";;
esac
echo $RPM_NAME

他のヒント

使用する grep そして、返品値を確認しますか?

あなたも できる MakefileでPythonを実行します。

パスの最後の要素は常にあなたが望むもののようです。

rpmname=$rpmname+${pathname##*/}

また

rpmname=$rpmname+$(basename pathname)
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top