Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Shell scripts (sh, bash, zsh, tcsh)

Модерирует : ShIvADeSt

 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3 4 5 6 7 8

Открыть новую тему     Написать ответ в эту тему

alyent



BANNED
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Обратите, пожалуйста, внимание, что существует более активная на настоящий момент смежная ветка.

Там же можно ознакомится со списком примечательной литературы по теме.
Первый пост этой ветки имел вид...

Всего записей: 1087 | Зарегистр. 09-03-2002 | Отправлено: 10:04 02-02-2003 | Исправлено: ASE_DAG, 19:08 12-07-2013
ASE_DAG



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
gap5
Посты не дублируйте. Не первый же вы вроде год на форуме.

----------
Dmitry Alexandrov <321942@gmail.com> [PGP] [BTC]

Всего записей: 9272 | Зарегистр. 12-05-2005 | Отправлено: 15:05 27-05-2011
lirik93

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
нужна помощь..((
написать скрипт , который проверит не запущена ли из директории программа, а если запущена, останавливает. (LINUX)

Всего записей: 1 | Зарегистр. 28-12-2011 | Отправлено: 16:50 28-12-2011
ASE_DAG



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
lirik93
> проверит не запущена ли из директории программа
«Запущена из директории» — это как? Является текущей рабочей — пожалуйста:
$ ps -A -o pid= | xargs pwdx | gawk -F ': ' '$2 == "/tmp" {print $1}'
 
А рабочая директория на момент запуска нигде не сохраняется.

----------
Dmitry Alexandrov <321942@gmail.com> [PGP] [BTC]

Всего записей: 9272 | Зарегистр. 12-05-2005 | Отправлено: 00:47 29-12-2011 | Исправлено: ASE_DAG, 00:48 29-12-2011
gap5



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
...передумал...

Всего записей: 1033 | Зарегистр. 30-05-2006 | Отправлено: 22:03 10-01-2012 | Исправлено: gap5, 20:57 11-01-2012
turboon

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Здравствуйте. Столкнулся с интересной непонятностью.
Изучаю bash, сравнение строк по ASCII кодам.
Например, согласно мануалу, выражения
if [[ "$a" > "$b" ]]
и
if [ "$a" \> "$b" ]
- это одно и тоже. Однако:
и
if [[ ":" < "0" ]]; then echo "Y"; fi
и
if [ ":" \> "0" ]; then echo "Y"; fi
оказываются истинны!
А почему - непонятно
Помогите разобраться, пожалуйста
 

Всего записей: 22 | Зарегистр. 22-06-2010 | Отправлено: 12:58 27-01-2012 | Исправлено: turboon, 12:59 27-01-2012
ASE_DAG



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
turboon
> Например, согласно мануалу, выражения [[ "$a" > "$b" ]] и if [ "$a" \> "$b" ] - это одно и тоже.
В каком это мануале вы сие прочитали? В bash(1) белым по черному написано:

Цитата:
When used with [[, the < and > operators sort lexicographically using the current locale.  The test command sorts using ASCII ordering.

 
В нейтральной локали, да, разницы не будет:
$ LANG=C
$ echo -e ':\nb\na\n0\n1' | sort
0
1
:
a
b

 
В иных локалях — вполне может быть (для этого, понятное дело, и делалось).
$ LANG=ru_RU.UTF-8
$ echo -e ':\nb\na\n0\n1' | sort
:
0
1
a
b

 
Использовать устаревшие (deprecated) возможности, оставленные для обратной совместимости, среди коих [, не надо.
 
P.S. Почему для русского языка установлен именно тот порядок сортировки, что установлен, — не знаю; стандарту (ГОСТ 7.25-2001) он не соответствует.


----------
Dmitry Alexandrov <321942@gmail.com> [PGP] [BTC]

Всего записей: 9272 | Зарегистр. 12-05-2005 | Отправлено: 14:43 27-01-2012
turboon

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
В каком это мануале вы сие прочитали?

В данном монументальном труде, например:
"Advanced Bash-Scripting Guide Автор: Mendel Cooper"
Спасибо! Теперь природа этого 'феномена' мне ясна
 
Кстати, может быть, вы еще подскажете.
Я использую сравнение по ASCII кодам, чтобы определить, является ли символ цифрой.
Вот так:
while [ "/" \< "$out" -a ":" \> "$out" ]; do ...
...
 
Возможно, есть более правильные методы для этого?

Всего записей: 22 | Зарегистр. 22-06-2010 | Отправлено: 17:00 27-01-2012
ASE_DAG



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
turboon
> Спасибо! Теперь природа этого 'феномена' мне ясна :-)
Всегда пожалуйста.
 
> Я использую сравнение по ASCII кодам, чтобы определить, является ли символ цифрой.  
Ну, наверное, вполне допустимый подход, но, конечно, не в том виде, что вы привели.
 
По-хорошему это проверяется так: [[ $X == [0-9] ]].
 
Проверка, является ли строка $X целым числом (т.е. одной или более цифрой, опционально с лидирующим минусом) может выглядеть как [[ $X == ?(-)+([0-9]) ]] (экстглобом) или [[ $X =~ ^-?[0-9]+$ ]] (регекспом).

----------
Dmitry Alexandrov <321942@gmail.com> [PGP] [BTC]

Всего записей: 9272 | Зарегистр. 12-05-2005 | Отправлено: 17:55 27-01-2012 | Исправлено: ASE_DAG, 18:39 27-01-2012
turboon

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Большое спасибо за помощь.

Всего записей: 22 | Зарегистр. 22-06-2010 | Отправлено: 10:41 30-01-2012
perdun



BANNED
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
есть некая утила, запрашивающая параметр (пароль) со стандартного ввода
как избавиться от "интерактивности"?
я так понимаю, надо переменную перенаправить в стдин..?

Всего записей: 1499 | Зарегистр. 21-01-2004 | Отправлено: 08:29 06-06-2012
ASE_DAG



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
perdun
> надо переменную перенаправить в стдин
Да, но базовыми утилитами в ГНУ (да и в других системах, полагаю) этого не сделать. Воспользуйтесь специально для вашей задачи предназначенной утилитой expect.

----------
Dmitry Alexandrov <321942@gmail.com> [PGP] [BTC]

Всего записей: 9272 | Зарегистр. 12-05-2005 | Отправлено: 09:31 06-06-2012
perdun



BANNED
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
ASE_DAG

Цитата:
утилитой expect

test# man expect
No manual entry for expect
чота нет такого..
а подробнее, что это?
====
я уж думаю на сях наколбасить чонить типа read(), write()
ну, блин, как то же просто должно быть..

Всего записей: 1499 | Зарегистр. 21-01-2004 | Отправлено: 10:51 06-06-2012
DrakonHaSh



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
perdun

Цитата:
а подробнее, что это?  

а в гугл вбить не пробовали ?  
 

Цитата:
я уж думаю на сях наколбасить чонить типа read(), write()
ну, блин, как то же просто должно быть..

v1. echo pass | util
v2. utul < fileWithPass
только на стандартных утилитах вроде ssh/su/sudo (да, по идее и любых других стандартных) такое не прокатит - они пароли не просто с stdin читают

Всего записей: 2076 | Зарегистр. 08-01-2008 | Отправлено: 11:03 06-06-2012
perdun



BANNED
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
DrakonHaSh

Цитата:
а в гугл вбить не пробовали ?

пробовали
помогло, но не сильно %)
колупаюсь шас с пайпами, как в статье
там и експект, и емпти, и на перлах, и на тцл-ях хрен знает чо нагородить можно..
еслиб можно было юзать, что то, кроме "штатного"..
нету ничо! минимальная инсталляция)
 
 
Добавлено:
DrakonHaSh

Цитата:
v1. echo pass | util
v2. utul < fileWithPass  

не катит, всё равно спрашивает
 
задача: авторизоваться на проксе посредством нетката
строка вида  
nc -x192.168.0.1:3128 -Xconnect -Puser ya.ru 80

Всего записей: 1499 | Зарегистр. 21-01-2004 | Отправлено: 12:09 06-06-2012
DrakonHaSh



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
perdun
когда-то подобной задачей интересовался
почитать можно здесь:
на ру-борде про юзание expect
эмуляция tty
эмуляция tty (не проверял и не вникал)

Всего записей: 2076 | Зарегистр. 08-01-2008 | Отправлено: 12:49 06-06-2012 | Исправлено: DrakonHaSh, 12:52 06-06-2012
ASE_DAG



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
perdun
> еслиб можно было юзать, что то, кроме "штатного"..  
А меж тем, вы только что собирались «на сях наколбасить чонить». Вижу здесь противоречие.

----------
Dmitry Alexandrov <321942@gmail.com> [PGP] [BTC]

Всего записей: 9272 | Зарегистр. 12-05-2005 | Отправлено: 15:06 06-06-2012
perdun



BANNED
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
ASE_DAG

Цитата:
А меж тем, вы только что собирались «на сях наколбасить чонить». Вижу здесь противоречие.

да не, во фре gcc "по штату" полагается, даж в минималке)

Всего записей: 1499 | Зарегистр. 21-01-2004 | Отправлено: 15:33 06-06-2012
ASE_DAG



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
perdun
Ну так ставьте expect и не морочьте себе и нам голову. ;-)

----------
Dmitry Alexandrov <321942@gmail.com> [PGP] [BTC]

Всего записей: 9272 | Зарегистр. 12-05-2005 | Отправлено: 17:49 06-06-2012 | Исправлено: ASE_DAG, 17:50 06-06-2012
perdun



BANNED
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
ASE_DAG

Цитата:
Ну так ставьте expect и не морочьте себе и нам голову.

ну дык.. а как до портов и сорцов добраться?  
яж грю, нет ничо, удалось тока ttyecho скомпилять, а вот как передать в nc пароль неясно; базовый набор утил - inetd, nc, ssh (вроде есть опция в ssh "чегото" проксирования, тунеляния)

Всего записей: 1499 | Зарегистр. 21-01-2004 | Отправлено: 19:47 06-06-2012
ASE_DAG



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
perdun
> а как до портов и сорцов добраться?
А это уже вам виднее, я понятия не имею, чем там у вас вызваны трудности с доступом к портам. Но как бы ни было, если вы можете собрать и выполнить ttyecho, то и expect можете, хотя это, возможно, и потребует несколько больших усилий.

----------
Dmitry Alexandrov <321942@gmail.com> [PGP] [BTC]

Всего записей: 9272 | Зарегистр. 12-05-2005 | Отправлено: 19:59 06-06-2012 | Исправлено: ASE_DAG, 20:05 06-06-2012
Открыть новую тему     Написать ответ в эту тему

Страницы: 1 2 3 4 5 6 7 8

Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Shell scripts (sh, bash, zsh, tcsh)


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru