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


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

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

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

Оффлайн alexander.pronin

  • Старожил
  • *
  • Сообщений: 2539
    • Просмотр профиля
Re: [HOWTO] Пишем bash скрипты
« Ответ #90 : 09 Ноября 2010, 14:16:57 »
cat file1 | sed 's/шило/мыло/g' > file2
cp file2 file1
rm file2

Оффлайн 32reg

  • Участник
  • *
  • Сообщений: 122
    • Просмотр профиля
    • Linux32.ru
Re: [HOWTO] Пишем bash скрипты
« Ответ #91 : 09 Ноября 2010, 14:24:10 »
Спасибо. А можно по полкам, что значит каждая команда? Вернее первую строку по полкам. Остальные уже осилил)))
www.linux32.ru - новости и статьи о Linux

Оффлайн alexander.pronin

  • Старожил
  • *
  • Сообщений: 2539
    • Просмотр профиля
Re: [HOWTO] Пишем bash скрипты
« Ответ #92 : 09 Ноября 2010, 14:29:55 »
whatis whatis
whatis cat
whatis sed
whatis man
man cat
man sed
man man

Оффлайн jelt

  • Новичок
  • *
  • Сообщений: 14
    • Просмотр профиля
Re: [HOWTO] Пишем bash скрипты
« Ответ #93 : 20 Ноября 2010, 13:53:01 »
Написал так
#!/bin/bash
ulimit -n 7168
Сохраняю в
/etc/init.d/limit_open_filesДалее
chmod +x /etc/init.d/limit_open_files
chown root:root /etc/init.d/limit_open_files
update-rc.d limit_open_files defaults
Не работает при загрузке.
Прошу помощи

Оффлайн Svertal

  • Активист
  • *
  • Сообщений: 893
  • КиберПанк
    • Просмотр профиля
Re: [HOWTO] Пишем bash скрипты
« Ответ #94 : 20 Ноября 2010, 14:09:54 »
Подскажите как сделать скрипт который бы открывал нужный (текстовый) файл, искал определенные слова в нем и заменял их на другие, а потом закрывал этот файл с сохранением изменений?
cat file1 | sed 's/шило/мыло/g' > file2
cp file2 file1
rm file2
Кстати говоря, можно проще, GNU sed умеет замещающую правку делать:
sed 's/шило/мыло/g' -i file

Оффлайн KlimVoroshilov

  • Новичок
  • *
  • Сообщений: 5
    • Просмотр профиля
Re: [HOWTO] Пишем bash скрипты
« Ответ #95 : 21 Ноября 2010, 16:36:44 »
Может это не по теме если что извините.Ни кто не поможет написать скрипт для отключение компьютера после завершения всех закчек в rtorrent.Заранее спасибо!!!

Оффлайн Angel_ok

  • Любитель
  • *
  • Сообщений: 95
    • Просмотр профиля
Re: [HOWTO] Пишем bash скрипты
« Ответ #96 : 03 Декабря 2010, 14:31:18 »
Здравствуйте.
Имеется два скрипта для отключения/включения Wi-Fi модуля аппаратно:
(Нажмите, чтобы показать/скрыть)
(Нажмите, чтобы показать/скрыть)

Скрипты нужно запускать только в консоли и каждый раз вводить пароль, что ни есть удобно.

Подскажите, пожалуйста, как: объединить два скрипта в одни, сделать так что бы можно запускать без консоли (хотя бы) и ввода пароля, чтобы можно было поставить на него горячую клавишу?
Спасибо.
Debian 6   Asus K40IJ

Оффлайн alexander.pronin

  • Старожил
  • *
  • Сообщений: 2539
    • Просмотр профиля
Re: [HOWTO] Пишем bash скрипты
« Ответ #97 : 03 Декабря 2010, 14:45:40 »
Посмотрите zenity

Оффлайн melekin

  • Новичок
  • *
  • Сообщений: 8
    • Просмотр профиля
Re: [HOWTO] Пишем bash скрипты
« Ответ #98 : 04 Декабря 2010, 12:42:32 »
Когда-то доработал скрипт распаковки .deb пакетов в nautilus. В ubuntu 9.04-9.10 прекрасно работает, а вот в 10.04 отказался работать, даже не выводится путь для распаковки... Уже всю голову сломал, немогу понять что нужно исправить чтоб  работало в LTS.
(Нажмите, чтобы показать/скрыть)

Пользователь решил продолжить мысль 04 Декабря 2010, 16:09:30:
Впринципе из всего скрипта пользуюсь только одной секцией
#!/bin/bash
#
#
#------------------------------------------------------------------------------------------------------------
#
DEFAULT_DIR="./"`basename $1 .deb`
DPKG_PATH=/usr/bin
TEMP_FILE=`tempfile`
#
    DIR=$(zenity --title "Распаковать в..." --entry --text "Путь извлечения:" --entry-text "$DEFAULT_DIR" --width=500 2>&1)
     if [ $DIR ]; then
            mkdir $DIR
            $DPKG_PATH/dpkg-deb --control $NAUTILUS_SCRIPT_SELECTED_FILE_PATHS $DIR/DEBIAN > $TEMP_FILE
            $DPKG_PATH/dpkg-deb --vextract $NAUTILUS_SCRIPT_SELECTED_FILE_PATHS $DIR/ > $TEMP_FILE
            zenity --text-info --title "Лог распаковки" --filename $TEMP_FILE --width=500 --height=500 2>&1
            rm $TEMP_FILE
            else
            zenity --error --title "Действие отменено" --text "Распаковка отменена пользователем." 2>&1
     fi
#
В ubuntu 9.10 она прекрасно работает, а в 10.04, увы... как всегда что-то сломали. При подтверждении выбивает последняя секция  zenity --error. Как это исправить, ума не приложу. Плюс при выборе секций тоже ничего не происходит в скрипте под сполером. Кто знает что произошло?

Пользователь решил продолжить мысль 04 Декабря 2010, 18:46:44:
странные вещи происходят в LTS, вывел резултаты условия в лог файл, чертовщина получается
(Нажмите, чтобы показать/скрыть)
вот результаты лога при даже если ответ положительный, при отрицании тоже самое получается
/usr/share/themes/Human/gtk-2.0/gtkrc:85: Murrine configuration option "gradients" is no longer supported and will be ignored.
« Последнее редактирование: 04 Декабря 2010, 18:46:44 от Max-melekin »
Motherboard - H61MLC, Inel G620 processor, video - GT-430
Ubuntu 12.04 LTS

Оффлайн Joliz

  • Новичок
  • *
  • Сообщений: 1
    • Просмотр профиля
Re: [HOWTO] Пишем bash скрипты
« Ответ #99 : 06 Декабря 2010, 00:19:18 »
подскажите пожалуйста, как можно округлить переменную?

Оффлайн alexander.pronin

  • Старожил
  • *
  • Сообщений: 2539
    • Просмотр профиля
Re: [HOWTO] Пишем bash скрипты
« Ответ #100 : 06 Декабря 2010, 08:41:02 »
Max-melekin, в глючную секцию добавьте ( можно даже в каждой строчке) вывод интресующей Вас информации
с помощью echo.
И обязательно разберетесь с глюком.

ALiEN175

  • Автор темы
  • Гость
Re: [HOWTO] Пишем bash скрипты
« Ответ #101 : 06 Декабря 2010, 14:44:48 »
Angel_ok,

скрипт:
#!/bin/bash

if [[ `ifconfig wlan0` ]] ; then
rmmod ath9k
else
modprobe ath9k
fi


Чтобы не запрашивал пароль, в терминале:

sudo visudo

в конец добавляем

%*ИМЯ* ALL=(ALL) NOPASSWD: /путь/к/скрипту

(*ИМЯ* заменить на нужного пользователя, без *)

скрипт запускаем через sudo:
sudo /путь/к/скрипту
« Последнее редактирование: 06 Декабря 2010, 15:02:00 от ALiEN175 »

Оффлайн aliftin

  • Старожил
  • *
  • Сообщений: 1398
    • Просмотр профиля
Re: [HOWTO] Пишем bash скрипты
« Ответ #102 : 26 Декабря 2010, 19:52:15 »
Не помню было-ли в теме вот это - http://www.bash-scripting.ru/abs/. Это проект по переводу последней версии книги Advanced Bash-scripting.
Если мы не можем до чего то дотянуться, мы виним в этом не свой рост, не отсутствие табуретки, а свою цель.

Оффлайн sakibo

  • Новичок
  • *
  • Сообщений: 24
    • Просмотр профиля
Re: [HOWTO] Пишем bash скрипты
« Ответ #103 : 26 Декабря 2010, 22:04:11 »
Руковдств уже кучу насобирал, но никак не пойму: как сделать, чтобы скрипт сам запускал терминал и в нем открывал файл?
Через редакторы это просто выходит, но хотелось через терминал попробовать.

ALiEN175

  • Автор темы
  • Гость
Re: [HOWTO] Пишем bash скрипты
« Ответ #104 : 27 Декабря 2010, 03:04:07 »
sakibo, у меня в xfce можно например, так:

terminal -H -e "cat /etc/samba/smb.conf"
т.е., запускаем терминал, опция <-H> не дает ему закрыться, опцией <-е> запускаем команду, которая должна выполниться в терминале.

читаем man <предпочитаемый терминал>
« Последнее редактирование: 27 Декабря 2010, 03:10:25 от ALiEN175 »

 

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