Форум русскоязычного сообщества Ubuntu


Хотите сделать посильный вклад в развитие Ubuntu и русскоязычного сообщества?
Помогите нам с документацией!

Автор Тема: sh-скрипт нужна помощь  (Прочитано 1931 раз)

0 Пользователей и 1 Гость просматривают эту тему.

daritay

  • Автор темы
  • Гость
sh-скрипт нужна помощь
« : 16 Августа 2010, 20:42:53 »
Хотел набросать sh-скрипт вида:

grep '^book-name=' ~/input.txt | sed -e 's/book-name=//g'

grep принимает файл ~/input.txt и ищет в нем строку по шаблону '^book-name=', передаёт через пайп sed'у, который отрезает "book-name=" и оставляет само название книги. Как записать это название в переменную?

Оффлайн dieselist

  • Активист
  • *
  • Сообщений: 525
    • Просмотр профиля
    • diesel.pp.ua
Re: sh-скрипт нужна помощь
« Ответ #1 : 16 Августа 2010, 21:27:05 »
VAR=`grep '^book-name=' ~/input.txt | sed -e 's/book-name=//g'`

Пользователь решил продолжить мысль 16 Августа 2010, 21:31:47:
Только твою задачу как-то и попроще можно было бы решить, ИМХО. Что-то типа
awk -F "=" '/^book-name/ {print $2}' ~/input.txt
« Последнее редактирование: 16 Августа 2010, 21:32:28 от dieselist »
Ubuntu, Gentoo, RHEL, AIX

daritay

  • Автор темы
  • Гость
Re: sh-скрипт нужна помощь
« Ответ #2 : 16 Августа 2010, 21:32:27 »
а что на счёт внешних кавычек? двойные пойдут?

Оффлайн dieselist

  • Активист
  • *
  • Сообщений: 525
    • Просмотр профиля
    • diesel.pp.ua
Re: sh-скрипт нужна помощь
« Ответ #3 : 16 Августа 2010, 21:33:08 »
а что на счёт внешних кавычек? двойные пойдут?

В смысле? Не совсем понимаю, что ты имеешь в виду под "внешние кавычки"
Ubuntu, Gentoo, RHEL, AIX

daritay

  • Автор темы
  • Гость
Re: sh-скрипт нужна помощь
« Ответ #4 : 16 Августа 2010, 21:35:25 »
VAR=`grep '^book-name=' ~/input.txt | sed -e 's/book-name=//g'`
между VAR= и  grep и сразу же после =//g'

Оффлайн dieselist

  • Активист
  • *
  • Сообщений: 525
    • Просмотр профиля
    • diesel.pp.ua
Re: sh-скрипт нужна помощь
« Ответ #5 : 16 Августа 2010, 21:38:31 »
Нет, там должны быть только обратные кавычки, как я и указал. Выражение в обратных кавычках выполняется и результат подставляется в строку. У одиночных и двойных кавычек совершенно другой смысл.
Ubuntu, Gentoo, RHEL, AIX

daritay

  • Автор темы
  • Гость
Re: sh-скрипт нужна помощь
« Ответ #6 : 16 Августа 2010, 21:42:36 »
Нет, там должны быть только обратные кавычки, как я и указал. Выражение в обратных кавычках выполняется и результат подставляется в строку. У одиночных и двойных кавычек совершенно другой смысл.
Странно, синтаксис SH разрабатывался в 70-80гг разве обратные кавычки были на стандартный терминальных клавиатурах? Лан, шас попробую твои кавычки в скрипт скопировать.

Пользователь решил продолжить мысль 16 Августа 2010, 21:45:37:
Допёр :2funny: сори за тупизму
« Последнее редактирование: 16 Августа 2010, 21:46:51 от daritay »

Оффлайн dieselist

  • Активист
  • *
  • Сообщений: 525
    • Просмотр профиля
    • diesel.pp.ua
Re: sh-скрипт нужна помощь
« Ответ #7 : 16 Августа 2010, 21:50:35 »
Ничего, мы привыкши :)
Заработало? ;)

Если не нравятся обратные кавычки - можно использовать такой синтаксис
VAR=$(grep '^book-name=' ~/input.txt | sed -e 's/book-name=//g')
Ubuntu, Gentoo, RHEL, AIX

daritay

  • Автор темы
  • Гость
Re: sh-скрипт нужна помощь
« Ответ #8 : 16 Августа 2010, 21:55:53 »
Чёта нет.

#!/bin/sh

# так выводит
grep '^ccc=' ./in.txt | sed -e 's/^ccc=//g'

# а так нет
var = $(grep '^ccc=' ./in.txt | sed -e 's/^ccc=//g')
echo $var

Файл in.txt :
aaa=111
bbb=222
ccc=333
ddd=444

В терминале:
daritay@daritay-desktop:~/Скрипты$ sh my.sh
333
my.sh: 7: var: not found
« Последнее редактирование: 16 Августа 2010, 21:58:40 от daritay »

Оффлайн dieselist

  • Активист
  • *
  • Сообщений: 525
    • Просмотр профиля
    • diesel.pp.ua
Re: sh-скрипт нужна помощь
« Ответ #9 : 16 Августа 2010, 22:00:23 »
Потому что пробелы перед и после знака равно ставить не надо было.

Пользователь решил продолжить мысль 16 Августа 2010, 22:01:25:
var=$(grep '^ccc=' ./in.txt | sed -e 's/^ccc=//g')

вот так, без пробелов, будет работать. И еще, имена переменных обычно пишут прописными.
Ubuntu, Gentoo, RHEL, AIX

daritay

  • Автор темы
  • Гость
Re: sh-скрипт нужна помощь
« Ответ #10 : 16 Августа 2010, 22:02:29 »
it works! пасаба, мэн! ;D

Оффлайн dieselist

  • Активист
  • *
  • Сообщений: 525
    • Просмотр профиля
    • diesel.pp.ua
Re: sh-скрипт нужна помощь
« Ответ #11 : 16 Августа 2010, 22:04:05 »
Всегда пожалуйста :)
Ubuntu, Gentoo, RHEL, AIX

Оффлайн karlin_sergei

  • Новичок
  • *
  • Сообщений: 13
    • Просмотр профиля
Re: sh-скрипт нужна помощь
« Ответ #12 : 25 Августа 2010, 13:27:29 »
добрый день!Не стал создавать новую тему, а напишу здесь. Помогите, пожалуйста, что нужно написать в самом скрипте чтобы выводилось информация о работе в системе пользователя в течение последних 3 дней???? заранее огромное спасибо.

Оффлайн dieselist

  • Активист
  • *
  • Сообщений: 525
    • Просмотр профиля
    • diesel.pp.ua
Re: sh-скрипт нужна помощь
« Ответ #13 : 25 Августа 2010, 14:01:43 »
добрый день!Не стал создавать новую тему, а напишу здесь. Помогите, пожалуйста, что нужно написать в самом скрипте чтобы выводилось информация о работе в системе пользователя в течение последних 3 дней???? заранее огромное спасибо.

конкретезируй, какая именно информация тебе нужна и в каком виде
Ubuntu, Gentoo, RHEL, AIX

Оффлайн alexander.pronin

  • Старожил
  • *
  • Сообщений: 2539
    • Просмотр профиля
Re: sh-скрипт нужна помощь
« Ответ #14 : 25 Августа 2010, 14:02:47 »
Что-то не понятен вопрос.
Попробую угадать
uptime
Не ?

 

Страница сгенерирована за 0.072 секунд. Запросов: 25.