Ru-Board.club
← Вернуться в раздел «Прикладное программирование»

» Shell scripts (sh, bash, zsh, tcsh)

Автор: alyent
Дата сообщения: 02.02.2003 09:04
Обратите, пожалуйста, внимание, что существует более активная на настоящий момент смежная ветка.
Ru.Board » Операционные системы » UNIX »
UNIX Shell
Автор: Mickey_from_nsk
Дата сообщения: 03.02.2003 06:57
Не скриптовое это дело. Есть соответствующие программы.
Автор: alyent
Дата сообщения: 03.02.2003 09:19
Mickey_from_nsk
Naprimer ?
Автор: Mickey_from_nsk
Дата сообщения: 05.02.2003 07:42
Даа .. похоже я лажанулся. Хотел сказать про recode, да потом обнаружил, что он не знает транслит.
Но в принципе, все равно - не скриптовое это дело. Лучше на языке эту прогу писать. IMHO - проще некуда. Опять же, взять исходники recode и дописать.
Автор: bo
Дата сообщения: 05.02.2003 12:02
В принципе из транстита во что-то - фиг переведешь.
во первых неоднозначность написания букв типа Я, Ы и т.д. (ya-ja)
во вторых составные звуки типа SH этто сочетание СХ или буква Ш...
В общем посмотри на свой текст транслитом и задумайся:
"луди, как сделать скрипт, которйж может..."
и это только по первому пункту.
А вот с русского на транслит напишу..., потом..., если ты захочешь...
Автор: UncoNNecteD
Дата сообщения: 05.02.2003 14:11
Нормального стандарта на транслит нет.
Лучше подскажите хороший мануал для bash !
Автор: alyent
Дата сообщения: 06.02.2003 02:50
UncoNNecteD

Код: man bash
Автор: UncoNNecteD
Дата сообщения: 06.02.2003 16:29
alyent

Цитата:
man bash

Садист
Мне более практичное что нить.
Автор: alyent
Дата сообщения: 06.02.2003 22:20
http://linux.vitebsk.by/ - neplohoy site s kuchey man pages.

Kstate, net ni u kogo khoroshego resursa po shell scriptingu
Автор: alyent
Дата сообщения: 16.04.2003 10:19
Думаю кому-то пригодится
полезные команды:
меняет заглавные буквы на строчные у файлов *.*

Код: for i in *.*; do mv "$i" `echo $i|tr '[A-Z]''[a-z]'`;done
Автор: arto
Дата сообщения: 16.04.2003 23:20
zsh:

zmv '(*).(*)' '${(#L)1}.${(#L)2}'

Автор: andrews
Дата сообщения: 17.04.2003 01:05
не знаю, как с транслитом, но вот между кодировками iconv конвертит как угодно и куда угодно ... особенно в linux ...
Автор: alyent
Дата сообщения: 17.04.2003 02:56
Повстречались с тобой, это было давно.
И светила луна, нам с тобой пару раз.
Но не знаю зачем, это быстро прошло,
Нет прекрасней насвете, твоих карих глаз.
Ты теперь далеко, и разлука-судьба,
Скорой встречи дла нас, не готовит увы.
Быстро время течет - горной речки вода,
И в потоке ее, вижу я те же сны.
Слишком много воды, утекло с той поры,
Нам уже не поймать, эхо наших стихов.
И пусть с нами живут, тени бледной луны,
В мире где жизнь, невозможна без снов.


Код:
cat poem_1.txt | tr '[АБВГДЕЖЗИКЛМНОПРСТУФХЦЧШЫЩЭЮЯабвгдежзийклмнопрстуфхцчшыьщэюя]'
'[ABVGDEJZIKLMNOPRSTUFHCCSSYEUAabvgdejzijklmnoprstufhccsy seua]'
Автор: webdeveloper
Дата сообщения: 27.10.2003 16:14
[code]
#!/bin/sh
if !( [ ping 10.0.0.138] ); then
echo "Turn the router on!";
fi
[/q]
возвращает ./test.sh: line 2: [: ping: unary operator expected

Как правильно написать вторую строку?
Автор: f_serg
Дата сообщения: 28.10.2003 12:08
webdeveloper

Код: #!/bin/sh
ping 10.0.0.138 > /dev/null 2>&1
if [ $? -ne 0 ]; then
echo "Turn the router on!"
fi
Автор: webdeveloper
Дата сообщения: 29.10.2003 14:32
f_serg
пасиба за помощ
работает но както не так
Скрипт запускается и ничего не выводит, только когда жму ctl+c скрипт завершается и выводит резулmтат

Как это исправить?
Автор: f_serg
Дата сообщения: 29.10.2003 15:29
webdeveloper

Цитата:
Как это исправить?

Почитай man ping. Там должен быть ключ на количество посылаемых пакетов. На разных системах по-разному. И ограничь, например, тремя пакетами. Для линукса

Код: #!/bin/sh
ping -c 3 10.0.0.138 > /dev/null 2>&1
if [ $? -ne 0 ]; then
echo "Turn the router on!"
fi
Автор: alyent
Дата сообщения: 17.06.2004 08:08
Скрипту передатся лист атрибутов

Код: script art1 art2 ... atrn
Автор: f_serg
Дата сообщения: 17.06.2004 08:16
alyent

Цитата:
Количество не известно, так что считывать надо в цикле.

$# - количество аргументов. В отличие от C имя самого скрипта не учитывается.
Автор: alyent
Дата сообщения: 17.06.2004 08:18
f_serg
это я знаю
А вот как пробежать по всем $1 $2 .. $n ???
например скрипт просто показывает лист аргументов?

Код: for ((i=1; i<=$#; i++)); do
echo $i - $$i # $$i не пашет, выдает адрес переменной
done
Автор: Sea Eagle
Дата сообщения: 17.06.2004 08:22
alyent

Примерно так:


Код:
#!/bin/sh
loop=0
while [ $# -ne 0 ] # Цикл выполняется до тех пор, пока остаются аргументы
do
echo $1 #вывод параметра
shift # следующий параметр
done
Автор: alyent
Дата сообщения: 17.06.2004 08:34
Sea Eagle
спасибо
Только вот на последнем аргументе не останавливается, а пытается считать еще один и дает $(#+1) = "" .

Добавлено
Починил!

Код: until [ -z "$2" ]; do
echo $2
shift
done
Автор: Sea Eagle
Дата сообщения: 17.06.2004 08:43
alyent
Не знаю, не знаю...

у меня нормально:

Код:
195$ ./test.sh wer ert rty
wer
ert
rty
Автор: alyent
Дата сообщения: 17.06.2004 08:46

Цитата:
у меня нормально:

Возможно моя криворукость... И все-таки несколько извращенный метод, согласитесь. String [] ARGV в Perl и Java куда правильнее на мой взгляд.
Автор: Sea Eagle
Дата сообщения: 17.06.2004 08:59
alyent

Цитата:
Как написать

Код: if ((a==1) && (b>=3)) a = b;

с помощью BASH?
Автор: alyent
Дата сообщения: 17.06.2004 09:03
Sea Eagle
Спасибо за помощь. Просто я на шелл-скрипте не писал особо, а тут дали в универе задание - пришлось выучить. Синтаксис древний, но зато это хороший "клей", или "молоток" (русские с молотком и такой-то матерью могут поченить абсолютно все).
Автор: Sea Eagle
Дата сообщения: 17.06.2004 09:15
Там последний код малость не работает, вернее работает, но не правильно... ща я его до ума доведу!!!

Добавлено
Вот рабочий пример:

Код:
#!/bin/sh

a=1
b=4

if [ "$a" -eq "1" -a "$b" -ge "3" ]; then
a=$b
echo "YES"
else
echo "NO"
fi
Автор: f_serg
Дата сообщения: 17.06.2004 12:56
alyent
Еще вариант прохода по всем аргументам:

Код: for i in $*
do
echo $i
done
Автор: Sea Eagle
Дата сообщения: 17.06.2004 15:17
f_serg

Да... и так тоже можно...
Автор: alyent
Дата сообщения: 01.07.2004 19:31
Поставил ZSH - шелл супер, гораздо удобнее bash (если кому интересно, могу перечислить почему).
Но у меня почему-то не работают кнопки <DEL> <HOME> <END> (при нажатии печатается '~').
Помогите починить.

Страницы: 123456

Предыдущая тема: Сжатие БД формата Access средствами VC++


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.