LINUX.ORG.RU

Вопрос по консольному скрипту


0

0

Задача: разобрать строку вида [путь 1]:[путь 2]:[путь 3]:...:[путь n], выделить из неё пути (в путях могут быть пробелы), а потом найти все файлы с расширением jar в этих путях. Всё это нужно для автоматического создания CLASSPATH.

Я не сильно волоку в этом деле и по этому сделал такой вот скрипт:

CLASSPATH=./

for i in `echo $JAVA_LIBS | sed -e "s/:/\n/g" | gawk '{ print NR }'`

do

LIBS_PATH=`echo $JAVA_LIBS | sed -e "s/:/\n/g" | gawk 'NR == '$i' { print $0 }'`

if [ -d $LIBS_PATH ]

then

for i in `find $LIBS_PATH -name *.jar`

do

CLASSPATH=$CLASSPATH:$i

done

fi

done

echo $CLASSPATH

Может подскажите, как сделать проще. Желательно без использования perl

anonymous

#!/bin/bash

str="a1:a2:a3"

IFS=":"

for chunk in $str; do
  echo $chunk
done

nikto
()

:) Зашибися. Большое спасибо

anonymous
()

Получилось вот что:

CLASSPATH=./

IFS=":" for i in $JAVA_LIBS do unset IFS LIBS_PATH=$i

if [ -d $LIBS_PATH ] then for p in `find $LIBS_PATH -name *.jar` do CLASSPATH=$CLASSPATH:$p done fi done

echo $CLASSPATH

anonymous
()

[offtopic]Биля, почему переводы строк не сохраняются[/offtopic]

anonymous
()

> [offtopic]Биля, почему переводы строк не cохраняются[/offtopic]

choose "preformatted text"

nikto
()

CLASSPATH=./

IFS=":"
for i in $JAVA_LIBS
do
    unset IFS
    LIBS_PATH=$i

    if [ -d $LIBS_PATH ]
    then
        for p in `find $LIBS_PATH -name *.jar`
        do
	    CLASSPATH=$CLASSPATH:$p
	done
    fi
done

echo $CLASSPATH

Как то не красиво сначала устанавливать IFS, а потом снимать

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.