LINUX.ORG.RU

[easy]Bash script


0

0

Нужно присвоить переменной значение первой строки в файле. Пробелов нет.

Пробывал cat ./password > $PASSWORD...


Ответ на: комментарий от Andaril

Andaril> а есть возможность прочитать вторую строку из того же файла для другой переменной?

Берусь угадать твой третий вопрос

sdio ★★★★★
()
Ответ на: комментарий от sdio

sdio> Берусь угадать твой третий вопрос

N-ый строку для n-ой переменной?

Andaril
() автор топика

Можно показать результат команды?
cat ./password | wc -l
Очень интересно, сколь длинной будет топик.

Lumi ★★★★★
()
Ответ на: комментарий от Lumi

>Можно показать результат команды?

Так ведь не сработало)

Andaril
() автор топика
Ответ на: комментарий от YAR

Ну и вдогонку:

rain@mws64:/tmp$ time sed -n '14p' file
string 14

real   0m1.827s
user   0m1.702s
sys   0m0.117s
rain@mws64:/tmp$ time (head -n14 file | tail -n1)
string 14

real   0m0.004s
user   0m0.000s
sys   0m0.005s

YAR ★★★★★
()

Что-нибудь типа:

eval $(cat -n file | sed . *\([0-9]+\).\$VAR\1=....)

anonymous
()
Ответ на: комментарий от sdio

объясните как использовать sed... читаю man и не вижу ничего похожего на sed -n '14{p;q}' file...

Andaril
() автор топика

Чтение из файла построчно значений

в формате 'NAME=vale'

  while
    read LINE
    [[ -n $LINE ]]
  do
    NAME=${LINE%%=*}
    VALUE=${LINE#*=}
    case $NAME in
      "NAME") LIB_NAME=$VALUE ;;
      "JAR") LIB_JAR=$VALUE ;;
      "DOC") LIB_DOC=$VALUE ;;
      "SRC") LIB_SRC=$VALUE ;;
      *) echo "WARNING: Unknown NAME: '$NAME'"
    esac;
    # empty
    LINE=
  done < "$1"; 
# $1 - имя файла из которого читаются значения

Приведенный код допускает значния «NAME»,«JAR»,«DOC»,«SRC», при желании их можно запихнуть в соотвествующие переменные автоматически, т.е. не перечисляя их в 'case'.

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