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


Получить помощь и пообщаться с другими пользователями Ubuntu можно
на irc канале #ubuntu-ru в сети Freenode
и в Jabber конференции ubuntu@conference.jabber.ru

Автор Тема: [HOWTO] Пишем bash скрипты  (Прочитано 148472 раз)

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

Оффлайн Vitsliputsli

  • Старожил
  • *
  • Сообщений: 1133
    • Просмотр профиля
Re: [HOWTO] Пишем bash скрипты
« Ответ #255 : 30 Март 2013, 09:15:55 »
sed 's/.*\/\(.*\)\..*/\1/' <<< $WIKI_LINK

Оффлайн ArcFi

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 15194
    • Просмотр профиля
    • aetera.net
Re: [HOWTO] Пишем bash скрипты
« Ответ #256 : 30 Март 2013, 09:41:27 »
sklart,
Код: Bash
  1. WIKIFILE_NAME="${WIKI_LINK##*/}"
  2. WIKIFILE_NAME="$(basename "$WIKI_LINK")"

Оффлайн sklart

  • Новичок
  • *
  • Сообщений: 3
    • Просмотр профиля
Re: [HOWTO] Пишем bash скрипты
« Ответ #257 : 30 Март 2013, 11:18:42 »
Vitsliputsli, ArcFi, спасибо.

Оффлайн Vitsliputsli

  • Старожил
  • *
  • Сообщений: 1133
    • Просмотр профиля
Re: [HOWTO] Пишем bash скрипты
« Ответ #258 : 30 Март 2013, 11:34:52 »
Расширение не удаляется, правильнее так:
WIKIFILE_NAME="${WIKI_LINK##*/}"; WIKIFILE_NAME="${WIKIFILE_NAME%.*}"
как я понимаю проход только один и объединить эти две команды нельзя?..

Вот еще вариант, с expr:
WIKIFILE_NAME=`expr match "$WIKI_LINK" '.*/\(.*\)\..*'`

Оффлайн sklart

  • Новичок
  • *
  • Сообщений: 3
    • Просмотр профиля
Re: [HOWTO] Пишем bash скрипты
« Ответ #259 : 30 Март 2013, 12:19:31 »
Расширение не удаляется, правильнее так:
WIKIFILE_NAME="${WIKI_LINK##*/}"; WIKIFILE_NAME="${WIKIFILE_NAME%.*}"
как я понимаю проход только один и объединить эти две команды нельзя?..

Вот еще вариант, с expr:
WIKIFILE_NAME=`expr match "$WIKI_LINK" '.*/\(.*\)\..*'`

Ага, я попробовал, а выводится с расширением. А вот эти варианты, то что надо. Проход один, обе переменные потом единожды используются в командах. Спасибо!

Пользователь решил продолжить мысль 30 Март 2013, 14:03:53:
Подскажите пожалуйста, еще, как настроить вывод всего выполнения скрипта в лог.
Пробовал варианты:
logger -f 1.log
1>1.log

Во втором случае создается файл лога, но он пустой. Мне нужно чтобы все содержимое терминала после запуска скрипта передавалось в файл.
Совсем запутался. Похоже что через вторую команду можно сделать, но не работает. Может я не в том месте скрипта еге вставляю (у меня в начале)?

Пользователь решил продолжить мысль 30 Март 2013, 17:10:15:
Еще возникла проблема, не могу вызвать функцию из меню выбора.
PS3="${GREEN}Выберите необходимую операцию: ${STANDART}"
options=("${YELLOW}Функция 1${STANDART}" "${YELLOW}Функция 2${STANDART}" "${YELLOW}Выход${STANDART}")
select opt in "${options[@]}"
do
    case $opt in
        "${YELLOW}Функция 1${STANDART}")
            #echo "you chose choice 1"
    compile  # Вот такая ошибка на этой строке: compile: команда не найдена
            ;;
        "${YELLOW}Функция 2${STANDART}")
            echo "you chose choice 2"
            ;;
        "${YELLOW}Выход${STANDART}")
            break
            ;;
        *) echo invalid option;;
    esac
done

function compile {
...
}

P.S. GREEN и STANDART - это цветовое форматирование.
« Последнее редактирование: 30 Март 2013, 17:11:12 от sklart »

Оффлайн morgusha

  • Новичок
  • *
  • Сообщений: 37
    • Просмотр профиля
Re: [HOWTO] Пишем bash скрипты
« Ответ #260 : 07 Август 2013, 23:37:48 »
как в bash скрипте работать с sql запросами ?
bak.sh
#!/bin/bash
mysql -uroot -ppassword < file_with_sql_commands.sql


file_with_sql_commands.sql
show tables;
так должно работать через крон если запускать скрипт ???

Оффлайн alexander.pronin

  • Старожил
  • *
  • Сообщений: 2540
    • Просмотр профиля
Re: [HOWTO] Пишем bash скрипты
« Ответ #261 : 08 Август 2013, 08:21:22 »
В более общем виде так.
mysql -uLOGIN -PPORT -hHOST -pPASS DBNAME < file.sql
Если надо выполнить один sql запрос, то так.
sql="..."
mysql -uLOGIN -PPORT -hHOST -pPASS DBNAME -e "$sql"
« Последнее редактирование: 08 Август 2013, 08:23:40 от alexander.pronin »

Оффлайн victor00000

  • Старожил
  • *
  • Сообщений: 13800
  • Я не слышу.
    • Просмотр профиля
Re: [HOWTO] Пишем bash скрипты
« Ответ #262 : 08 Август 2013, 08:28:26 »
#!/bin/bash
mysql -uroot -ppassword -e "
show tables;
"
#!/bin/bash
cat << EOF | mysql -uroot -ppassword
show tables;
EOF
RuTorrent
Ydisk
Душинский В.В.

Оффлайн bazilevs31

  • Новичок
  • *
  • Сообщений: 1
    • Просмотр профиля
Re: [HOWTO] Пишем bash скрипты
« Ответ #263 : 14 Август 2013, 11:07:55 »
Уважаемые товарищи убунтяне.

Подскажите пожалуйста.
Мне надо написать баш скрипт , который бы записывал что-то в файл - кэп подсказал мне что надо использовать ech0 "" >> file

Но беда в том , что мне надо записать другой скрипт ( tcl скрипт) который содержит всякие там $i переменные которые встречаются и моем баш скрипте.

Пример

i=10
a= some expression with $i

echo " some tcl script
$i здесь надо чтобы это было как символ , а не как указатель на вышеобъявленную переменную  " >> file

спасибо

Оффлайн ArcFi

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 15194
    • Просмотр профиля
    • aetera.net
Re: [HOWTO] Пишем bash скрипты
« Ответ #264 : 14 Август 2013, 11:36:10 »
bazilevs31,
echo '123
456
789' >file

Оффлайн KDEX

  • Участник
  • *
  • Сообщений: 105
    • Просмотр профиля
Re: [HOWTO] Пишем bash скрипты
« Ответ #265 : 08 Октябрь 2013, 14:27:18 »
В сочетании с этим: http://forum.ubuntu.ru/index.php?topic=24150.0 позволяет научить компьютер приносить тапочки и варить кофе.
p.s топик был перенесён или удалён? Подскажите пжл.

 

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