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


Увидели сообщение с непонятной ссылкой, спам, непристойность или оскорбление?
Воспользуйтесь ссылкой «Сообщить модератору» рядом с сообщением!

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

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

Оффлайн Athlon_33_88

  • Новичок
  • *
  • Сообщений: 39
  • PowerNet
    • Просмотр профиля
    • EasyNod.RU
Re: [HOWTO] Пишем bash скрипты
« Ответ #165 : 17 Апреля 2011, 22:45:32 »
Без mkdir.Команда скачивает все файлы,доступные данному юзеру в папку указанную пользователем,а не в папку с названием доменного имени,которая появляется в заданной папке+ко всему,если файл уже есть,wget пропускает его скачку.
links -dump ftp://ftp.mozilla.org/pub/
?
Не понял о чем ты!
Не красота, а резервное копирование спасет мир!

Оффлайн Zalexi

  • Новичок
  • *
  • Сообщений: 42
    • Просмотр профиля
Re: [HOWTO] Пишем bash скрипты
« Ответ #166 : 02 Мая 2011, 20:04:11 »
Ubuntu 11.04 + Unity.
Есть bash-скрипт (первая строчка: #!/bin/bash) справами -rwxr-xr-x, исполняемый, взят отсюда: http://blog.angel2s2.ru/2010/10/ppa.html. Скрипт находится по адресу: ~/bin/, под именем ppaadd.
В терминале можно выбрать bash и zsh.
В файлы настроек (.bashrc и.zshrc) добавлены alias: pad.
В Ubuntu 10.10 запускался и прекрасно работал. Теперь отказывается.
Терминал, bash.
$ pad
ppaadd: команда не найдена
Терминал, zsh.
└─(17:59:%)── pad     
zsh: command not found: ppaadd
Подскажите, пожалуйста, что нужно сделать?
Нужно умереть молодым и сделать  это как можно позже. Китайская пословица[.i]

Оффлайн victor00000

  • Старожил
  • *
  • Сообщений: 15568
  • Глухонемой (Deaf)
    • Просмотр профиля
Re: [HOWTO] Пишем bash скрипты
« Ответ #167 : 03 Мая 2011, 08:36:01 »
Ubuntu 11.04 + Unity.
Есть bash-скрипт (первая строчка: #!/bin/bash) справами -rwxr-xr-x, исполняемый, взят отсюда: http://blog.angel2s2.ru/2010/10/ppa.html. Скрипт находится по адресу: ~/bin/, под именем ppaadd.
В терминале можно выбрать bash и zsh.
В файлы настроек (.bashrc и.zshrc) добавлены alias: pad.
В Ubuntu 10.10 запускался и прекрасно работал. Теперь отказывается.
Терминал, bash.
$ pad
ppaadd: команда не найдена
Терминал, zsh.
└─(17:59:%)── pad     
zsh: command not found: ppaadd
Подскажите, пожалуйста, что нужно сделать?
sudo -s
links -dump http://blog.angel2s2.ru/2010/10/ppa.html | grep '#!/bin/bash' -A50 > /usr/bin/ppaad;chmod +x /usr/bin/ppaad
exit

???
Wars ~.o

Оффлайн Zalexi

  • Новичок
  • *
  • Сообщений: 42
    • Просмотр профиля
Re: [HOWTO] Пишем bash скрипты
« Ответ #168 : 03 Мая 2011, 09:45:59 »
victor00000
Благодарю за помощь. Это, как я понял. делаем ссылку? Я нашел еще одно решение -  уменя отсутствовал файл .prifile в домашней папке, где должен был указан путь ~/bin в переменной PATH. Создал этот файл и все сразу заработало.
Вот содержание ~/.profile
# ~/.profile: executed by the command interpreter for login shells.
# This file is not read by bash(1), if ~/.bash_profile or ~/.bash_login
# exists.
# see /usr/share/doc/bash/examples/startup-files for examples.
# the files are located in the bash-doc package.

# the default umask is set in /etc/profile; for setting the umask
# for ssh logins, install and configure the libpam-umask package.
#umask 022

# if running bash
if [ -n "$BASH_VERSION" ]; then
    # include .bashrc if it exists
    if [ -f "$HOME/.bashrc" ]; then
. "$HOME/.bashrc"
    fi
fi

# set PATH so it includes user's private bin if it exists
if [ -d "$HOME/bin" ] ; then
    PATH="$HOME/bin:$PATH"
fi
Нужно умереть молодым и сделать  это как можно позже. Китайская пословица[.i]

Оффлайн D1ablo

  • Новичок
  • *
  • Сообщений: 25
  • Develop
    • Просмотр профиля
    • D1ablo.ru
Re: [HOWTO] Пишем bash скрипты
« Ответ #169 : 01 Июня 2011, 08:26:45 »
Может быть есть у кого скрипт подсчета количества слов в файле? Чисто на шел на писанный? wc не прокатит grep тоже.. и т.д

Оффлайн alexander.pronin

  • Старожил
  • *
  • Сообщений: 2539
    • Просмотр профиля
Re: [HOWTO] Пишем bash скрипты
« Ответ #170 : 01 Июня 2011, 08:47:39 »
Почему wc не прокатит ? Запросто, только перед этим надо разбить строчки на слова седом.
Типа так.
cat file | sed 's/ /\n/g' | wc -l

Оффлайн RazrFalcon

  • O_o
  • Старожил
  • *
  • Сообщений: 3129
  • Zombie Mod
    • Просмотр профиля
    • Я на GitHub
Re: [HOWTO] Пишем bash скрипты
« Ответ #171 : 01 Июня 2011, 13:52:02 »
Эм...

$ echo my name | wc -w
2
Gentoo + KDE, Official Windows Hater
Хотите помочь нашей вики: https://help.ubuntu.ru/wiki/fixme

Оффлайн victor00000

  • Старожил
  • *
  • Сообщений: 15568
  • Глухонемой (Deaf)
    • Просмотр профиля
Re: [HOWTO] Пишем bash скрипты
« Ответ #172 : 04 Июня 2011, 00:59:31 »
$ echo my name | awk '{print NF}'
2

Wars ~.o

andrey_p

  • Автор темы
  • Гость
Re: [HOWTO] Пишем bash скрипты
« Ответ #173 : 04 Июня 2011, 05:51:01 »
Ну что вы wc, wc... А вот задачка - подсчитать частоту встречаемости слов на русском языке с ё в текстовом файле неизвестной кириллической кодировки с переносами. На шелл, естественно. Кто возьмется?  :)

Оффлайн D1ablo

  • Новичок
  • *
  • Сообщений: 25
  • Develop
    • Просмотр профиля
    • D1ablo.ru
Re: [HOWTO] Пишем bash скрипты
« Ответ #174 : 04 Июня 2011, 11:54:29 »
Не прокатит потому что нужен был чистый шел...
Вот решение:
#!/bin/bash
while [ $1 ]
do
if [  ! -f $1 ] ;
then
echo 'Error: using wordcount <filename>'
exit 0
fi
temp=0
for i in `cat $1`;
do
temp=$(expr $temp + 1)
done
echo in $1 $temp words
shift
done

Оффлайн victor00000

  • Старожил
  • *
  • Сообщений: 15568
  • Глухонемой (Deaf)
    • Просмотр профиля
Re: [HOWTO] Пишем bash скрипты
« Ответ #175 : 04 Июня 2011, 13:53:52 »
Ну что вы wc, wc... А вот задачка - подсчитать частоту встречаемости слов на русском языке с ё в текстовом файле неизвестной кириллической кодировки с переносами. На шелл, естественно. Кто возьмется?  :)
угу
cat windows.txt | iconv -f WINDOWS-1251 -t UTF-8
Wars ~.o

andrey_p

  • Автор темы
  • Гость
Re: [HOWTO] Пишем bash скрипты
« Ответ #176 : 05 Июня 2011, 07:48:17 »
Цитировать
wc не прокатит grep тоже.. и т.д
Цитировать
Не прокатит потому что нужен был чистый шел...
"Чистого" шелла не существует. Да и expr и cat - это однозначно внешние утилиты. expr позволяет использовать регулярные выражения и гораздо мощнее, чем grep для такой задачи, Ну и, кстати, предложенное решение имеет баг - будет сбоить на файлах, в именах которых есть пробелы.

Можно было бы попробовать, что-то вроде:

#!/bin/sh

DONE=false
until $DONE; do
    read s || DONE=true
    for w in $s; do
        total=$(($total+1))
    done
done <"$1"

echo "$total

Но это тоже не только shell - read, true, false, согласно POSIX, не обязаны являться встроенными командами. (Код усложнен из-за заморочек read c последней строкой, в случае, если она не оканчивается символом перевода строки).

А вот это замысловатое решение вроде работает:

cat "$1" | tr '\n' ' ' | tr -s ' ' '\n' | cat -n | tail -1 | (read a b; echo "$a")
Конечно, гораздо проще использовать цикл по `cat "$1"`.  Зато этот конвейер легко настроить на то, чтоб он подсчитывал настоящие слова, а не токены, разделенные пробелами.
« Последнее редактирование: 05 Июня 2011, 12:23:50 от andrey_p »

Оффлайн proman78

  • Новичок
  • *
  • Сообщений: 5
    • Просмотр профиля
Re: [HOWTO] Пишем bash скрипты
« Ответ #177 : 08 Июня 2011, 18:57:48 »
Помогите чайнику. Есть скрипт для ПДУ,установлен лирк.Как поместить скрипт в автозагрузку с правами root? Достаточно ли простого переноса в /usr/bin ?

ALiEN175

  • Автор темы
  • Гость
Re: [HOWTO] Пишем bash скрипты
« Ответ #178 : 08 Июня 2011, 20:31:41 »
Цитировать
Помогите чайнику. Есть скрипт для ПДУ,установлен лирк.Как поместить скрипт в автозагрузку с правами root? Достаточно ли простого переноса в /usr/bin ?

недостаточно.

для "рутовых" автозагрузок использую файл /etc/rc.local (достаточно прописать только путь к скрипту).
один нюанс - rc.local выполняется до запуска х-сервера, соответственно, и логина юзера.

wfedin

  • Автор темы
  • Гость
Re: [HOWTO] Пишем bash скрипты
« Ответ #179 : 08 Июня 2011, 20:38:15 »
Может кто подскажет https://forum.ubuntu.ru/index.php?topic=155880.msg1150653#msg1150653
Буду благодарен за помощь.

 

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