我在UNIX shell腳本中有以下行。我想排除將WEB-INF/lib中的test.jar添加到CLASSPATH中。我該怎麼做?關於Shell腳本
for file in WEB-INF/lib/*jar ;
do
CLASSPATH=$CLASSPATH:$PWD/$file
done
我在UNIX shell腳本中有以下行。我想排除將WEB-INF/lib中的test.jar添加到CLASSPATH中。我該怎麼做?關於Shell腳本
for file in WEB-INF/lib/*jar ;
do
CLASSPATH=$CLASSPATH:$PWD/$file
done
for file in WEB-INF/lib/*jar;
do
if [ $file != "WEB-INF/lib/test.jar" ]; then
CLASSPATH=$CLASSPATH:$PWD/$file
fi
done
我還沒有嘗試過。
放了一個空格:'[$ file' – ghostdog74 2010-03-16 05:41:01
並將'WEB-INF/lib /'添加到'test.jar'。我試圖編輯但代碼格式消失。 – mouviciel 2010-03-16 06:24:24
完成。謝謝:) – Paul 2010-03-16 07:06:15
PWD=$(pwd)
for file in WEB-INF/lib/*jar ; do
[ "$file" != "test.jar" ] && {
CLASSPATH="${CLASSPATH}:${PWD}/${file}"
}
done
如果file
不是「Test.jar的」,調整以滿足您的需求時才進入括號之間的代碼。
喜歡的東西
#!/bin/sh
...
PWD=`pwd`
for file in `ls $PWD/WEB-INF/lib | grep *.jar | grep -v test.jar`
CLASSPATH=$CLASSPATH:$file
end
不這樣做。使用shell擴展。 – ghostdog74 2010-03-16 05:39:42
#!/usr/bin/bash
shopt -s extglob
for file in WEB-INF/lib/!(test).jar
do
CLASSPATH="$CLASSPATH:$PWD/$file"
done
shopt -s extglob
CLASSPATH=$CLASSPATH:$(ls !(test).jar|sed "[email protected]^@$PWD/@"|tr "\n" ":"|sed 's/:$//')
或者
CLASSPATH=$CLASSPATH:$(ls !(genre).txt|awk '{$0="'$PWD'/"$0}1' ORS=":")
ARAV,請不要重複使用您的所有問題的 「關於shell腳本」 稱號。請使用標題說明實際問題。你不去看醫生,說「哎呀!」,是嗎? – Jens 2012-05-30 20:15:26