关于Shell脚本

时间:2010-03-16 05:12:28

标签: shell unix

我在unix shell脚本中有以下行。我想在添加到CLASSPATH的WEB-INF / lib中排除test.jar。我该怎么办?

for file in WEB-INF/lib/*jar ; 

do


CLASSPATH=$CLASSPATH:$PWD/$file

done

5 个答案:

答案 0 :(得分:2)

for file in WEB-INF/lib/*jar;
do
if [ $file != "WEB-INF/lib/test.jar" ]; then
CLASSPATH=$CLASSPATH:$PWD/$file
fi
done

我没试过。

答案 1 :(得分:1)

#!/usr/bin/bash
shopt -s extglob
for file in WEB-INF/lib/!(test).jar
do
  CLASSPATH="$CLASSPATH:$PWD/$file"
done

答案 2 :(得分:0)

PWD=$(pwd)

for file in WEB-INF/lib/*jar ; do
    [ "$file" != "test.jar" ] && {
        CLASSPATH="${CLASSPATH}:${PWD}/${file}"
    }
done

仅当file不是'test.jar'时才输入大括号之间的代码,根据您的需要进行调整。

答案 3 :(得分:0)

这样的东西
#!/bin/sh
...
PWD=`pwd`
for file in `ls $PWD/WEB-INF/lib | grep *.jar | grep -v test.jar`
   CLASSPATH=$CLASSPATH:$file
end

答案 4 :(得分:0)

shopt -s extglob  
CLASSPATH=$CLASSPATH:$(ls !(test).jar|sed "s@^@$PWD/@"|tr "\n" ":"|sed 's/:$//')

或者

CLASSPATH=$CLASSPATH:$(ls !(genre).txt|awk '{$0="'$PWD'/"$0}1' ORS=":")