2010-03-10 146 views
0

我试图创建一个使用信息从路径创建一个相关的转名Makefile文件的路径匹配字符串/目录。假设我有两个不同的可能路径:如何使用bash脚本

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

如果“主”的路径进行检测,我想检测并追加“主”的转名。如果在路径中检测到“dev”,我想检测并将“ver2”追加到rpm名称。

我是新来的shell脚本和真的没有从哪里开始一个好主意。我可以很容易地做到这一点像python,但它的一个Makefile,所以我需要在shell中。

“主”的路径将是恒定的,但如果“主”不存在,dev的路径名需要被提取。下面的几个刈例子:

在/ usr /本地的/ home/JSMITH /码/主 在/ usr /本地的/ home/JSMITH /代码的/ dev/ver_usa 在/ usr /本地的/ home/JSMITH /代码的/ dev/ver_mexico /usr/local/home/jsmith/code/dev/ver3

如果存在“dev”,则需要提取“ver_usa”,“ver_mexico”,“ver3”等。目录名称需要提取将完全遵循“开发”。

回答

2

这样的事情,假设“主”和“版本2”不恒定

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 
+0

我加入更详细的问题。 “ver2”不一定是恒定的,但需要提取并存在于“../dev/” – user16738 2010-03-10 07:14:43

+0

好,所以它们不是恒定的。看我的编辑。 – ghostdog74 2010-03-10 07:24:40

0

使用grep和检查返回值?

此外,在Makefile中,你可以运行蟒蛇。

0

它看起来像路径的最后一个元素始终是一个你想要的。

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

rpmname=$rpmname+$(basename pathname)