motofan logo
7 страниц V < 1 2 3 4 > »         
> 

Написание скриптов #!/bin/sh for UNIX, Кто поможет?

VINRARUS
сообщение 17.6.2011, 17:56 Закрепленное сообщение!


Куратор темы

Термоядерный
********

Группа: Пользователи
Сообщений: 3 496
Регистрация: 12.12.2009
Из: Чорнобиль
Пользователь №: 211 044

Рейтинг: 1211



Ура! В теме появилася шапочка. watsup.gif
В даной теме помогаем друг другу в написании шелл скриптов, и дружно решаем проблемы связанные с ними smile.gif

Вот мои рукописные мануалы для совсем новичков:
Основы. Синтаксис, кавычки, переменные, условные операторы
Розширенная инфа о if

Подробный мануал с примерами по ВСЕМ функциям SH
Портативная версия еще одного мануала
Книги в формате Djvu

Примеры работы с текстом через sed и мануал PRO и мануал NUB
Примеры работы с текстом через awk и мануал
Обрезка текста внутри переменных - чорт ногу сломит =] О логике шаблонов.

Где быстро найти инфу?
Тут вводите в строчку поиска манов любую утилиту, например echo, и 95% вероятности что получите инфу по всем функциям и ключам
Вот инфа по НЕКОТОРЫМ утилитам, также можна пользоваться поиском

ПС

1. Не во всех UNIX\LINUX системах можно сразу в терминале вводить команды утилит.
Например в MOTOMAGX часто перед командой утилиты нужно вводить "busybox" (например busybox free) хотя это и решено на некоторых модах.
А в некоторых выкидышах типа Android они и вовсе отсутствуют как и сам busybox, но есть возможность добавить его самому.

2. Не всегда утилиты поддерживают то что написано в манах к ним, иногда функционал меняется от версии к версии.

3. Также нужно знать что код от bash иногда может не работать корректно на shell (sh), хотя и очень редко.
Это из за того что древним программистам делать было нечего, когда не было еще интернета, и они понапридумывали кучу модификаций.
Хорошо хоть код под чистый shell подойдет ко всем им, из за чего он считается эталоном. smile.gif
А не bash как считают юные линуксойды.
[close]


Сообщение отредактировал VINRARUS - 12.12.2020, 21:32
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Osta
сообщение 26.7.2011, 19:43


Freestyler
********

Группа: Легенды MotoFan.Ru
Сообщений: 10 329
Регистрация: 20.7.2004
Пользователь №: 8 235
Модель телефона: Moto
Прошивка: *#9999#


Настроение:
Все невыспавшиеся в следующей жизни будут котами



Рейтинг: 4362



смотри : скачиваем файл http://bash.org.ru/random,
открываем его на редактирование , удаляем всё что ДО слова утверждена включительно ,
удаляем всё , что ПОСЛЕ слов <hr class="iq"> включительно

Так можно сделать?
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
VINRARUS
сообщение 27.7.2011, 5:41


Куратор темы

Термоядерный
********

Группа: Пользователи
Сообщений: 3 496
Регистрация: 12.12.2009
Из: Чорнобиль
Пользователь №: 211 044

Рейтинг: 1211



я не знаю как на sh качать файлы с нета.
А без скачивания нильзя?

EXL:
Код
wget http://bash.org.ru/random  

И пишешь парсер html кода. Всё это есть в интернете


Сообщение отредактировал EXL - 27.7.2011, 7:06
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
igoripp
сообщение 27.7.2011, 9:47


Самый дерзкий
******

Группа: Пользователи
Сообщений: 1 412
Регистрация: 27.3.2010
Из: Касимов, Муром
Пользователь №: 215 540
Модель телефона: sony ion
Прошивка: Разные

Рейтинг: 1336



А кто подскажет как провернуть одно дело? Есть файл log.txt, в нем последовательность строк, состоящих из одного символа. Мне надо, чтоб в файл gol.txt поместилась одна строка из этих символов, без каких-либо разделительных символов)
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
IlluminatI
сообщение 27.7.2011, 12:15


Ветеран
*****

Группа: Пользователи
Сообщений: 670
Регистрация: 15.8.2009
Из: Украина, г.Харьков
Пользователь №: 204 570
Модель телефона: [DROID MAXX][RAZR M]


Настроение:
139



Рейтинг: 520



igoripp, на Си где-то был исходник, могу впринципе собрать, на sh увы, не знаю...
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
VINRARUS
сообщение 27.7.2011, 12:40


Куратор темы

Термоядерный
********

Группа: Пользователи
Сообщений: 3 496
Регистрация: 12.12.2009
Из: Чорнобиль
Пользователь №: 211 044

Рейтинг: 1211



igoripp, ето выдаст все в 1 строчку
tr -d "\n"
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Osta
сообщение 27.7.2011, 12:44


Freestyler
********

Группа: Легенды MotoFan.Ru
Сообщений: 10 329
Регистрация: 20.7.2004
Пользователь №: 8 235
Модель телефона: Moto
Прошивка: *#9999#


Настроение:
Все невыспавшиеся в следующей жизни будут котами



Рейтинг: 4362



Цитата(VINRARUS @ Сегодня, 8:41)
* А без скачивания нильзя?

напиши как будто он тут /var/etc/file.html
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
igoripp
сообщение 27.7.2011, 13:18


Самый дерзкий
******

Группа: Пользователи
Сообщений: 1 412
Регистрация: 27.3.2010
Из: Касимов, Муром
Пользователь №: 215 540
Модель телефона: sony ion
Прошивка: Разные

Рейтинг: 1336



VINRARUS, a как этим пользоваться? Конструкция вида: tr -d "\n" gol.txt>>ink.txt нем работает(
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
VINRARUS
сообщение 27.7.2011, 13:51


Куратор темы

Термоядерный
********

Группа: Пользователи
Сообщений: 3 496
Регистрация: 12.12.2009
Из: Чорнобиль
Пользователь №: 211 044

Рейтинг: 1211



cat 1.txt | tr -d "\n" > 2.txt
отак.
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
igoripp
сообщение 27.7.2011, 14:58


Самый дерзкий
******

Группа: Пользователи
Сообщений: 1 412
Регистрация: 27.3.2010
Из: Касимов, Муром
Пользователь №: 215 540
Модель телефона: sony ion
Прошивка: Разные

Рейтинг: 1336



Так тоже не работает( вопрос по-прежнему открыт...
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
VINRARUS
сообщение 27.7.2011, 15:56


Куратор темы

Термоядерный
********

Группа: Пользователи
Сообщений: 3 496
Регистрация: 12.12.2009
Из: Чорнобиль
Пользователь №: 211 044

Рейтинг: 1211



igoripp,
у меня работает.
Надеюся ты вместо 1.ТХТ и 2 поставил полные пути к файлам.
Попробуй так.
busybox cat 1.txt | busybox tr -d "\n" > 2.txt
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
igoripp
сообщение 28.7.2011, 5:53


Самый дерзкий
******

Группа: Пользователи
Сообщений: 1 412
Регистрация: 27.3.2010
Из: Касимов, Муром
Пользователь №: 215 540
Модель телефона: sony ion
Прошивка: Разные

Рейтинг: 1336



VINRARUS, Спасибо огромное clapping.gif Такая связка заработала:
Код
busybox cat 1.txt | busybox tr -d "\n" > 2.txt
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
VINRARUS
сообщение 28.7.2011, 11:43


Куратор темы

Термоядерный
********

Группа: Пользователи
Сообщений: 3 496
Регистрация: 12.12.2009
Из: Чорнобиль
Пользователь №: 211 044

Рейтинг: 1211



Osta, вот етот код ищет в файле строчку с словами 'утверждена' и '<hr class="iq">', и пишет в файл то что между етими словами.
Если вдруг между етими словами есть переносы строк, то оно будет работать неправильно. В таком случае напишы, я допилю.

#!/bin/sh
QT=`cat /
var/etc/file.html`
echo "go))"
echo "$QT" | sed -e '/<hr class="iq">/!d' -e 's/.*утверждена//' -e 's/<hr class="iq">.*//' > /tmp/V.txt
echo end!
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Osta
сообщение 28.7.2011, 13:42


Freestyler
********

Группа: Легенды MotoFan.Ru
Сообщений: 10 329
Регистрация: 20.7.2004
Пользователь №: 8 235
Модель телефона: Moto
Прошивка: *#9999#


Настроение:
Все невыспавшиеся в следующей жизни будут котами



Рейтинг: 4362



tmp/V.txt стабильно равен 0 байт , переносы по-любому есть (
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
VINRARUS
сообщение 28.7.2011, 18:29


Куратор темы

Термоядерный
********

Группа: Пользователи
Сообщений: 3 496
Регистрация: 12.12.2009
Из: Чорнобиль
Пользователь №: 211 044

Рейтинг: 1211



вот:
#!/bin/sh
QT=`cat /var/etc/file.html`
echo "go))"
echo "$QT" | tr '\n' 'ӕ' | sed -e '/<hr class="iq">/!d' -e 's/.*утверждена//' -e 's/<hr class="iq">.*//' | tr 'ӕ' '\n' > /tmp/V.txt
echo end!


Добавлено позже (28.7.2011, 21:32):
у меня работает.
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Osta
сообщение 28.7.2011, 18:38


Freestyler
********

Группа: Легенды MotoFan.Ru
Сообщений: 10 329
Регистрация: 20.7.2004
Пользователь №: 8 235
Модель телефона: Moto
Прошивка: *#9999#


Настроение:
Все невыспавшиеся в следующей жизни будут котами



Рейтинг: 4362



ӕ - а что это за символ? у меня akelpad утверждает, что он утеряется при сохранении и V.txt пустой опять
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
VINRARUS
сообщение 28.7.2011, 21:15


Куратор темы

Термоядерный
********

Группа: Пользователи
Сообщений: 3 496
Регистрация: 12.12.2009
Из: Чорнобиль
Пользователь №: 211 044

Рейтинг: 1211



ну ето символ который никто не использует.
Мож попробовать заменить на один из етих:
♀♂♪♫њӕљ¼½¾❄✈✉
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Osta
сообщение 28.7.2011, 21:27


Freestyler
********

Группа: Легенды MotoFan.Ru
Сообщений: 10 329
Регистрация: 20.7.2004
Пользователь №: 8 235
Модель телефона: Moto
Прошивка: *#9999#


Настроение:
Все невыспавшиеся в следующей жизни будут котами



Рейтинг: 4362



заменил на ^
тхт файл пуст
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
VINRARUS
сообщение 29.7.2011, 4:57


Куратор темы

Термоядерный
********

Группа: Пользователи
Сообщений: 3 496
Регистрация: 12.12.2009
Из: Чорнобиль
Пользователь №: 211 044

Рейтинг: 1211



Osta,
выложы сюда сюда тот файл который прога должна зчитывать.
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Osta
сообщение 29.7.2011, 10:20


Freestyler
********

Группа: Легенды MotoFan.Ru
Сообщений: 10 329
Регистрация: 20.7.2004
Пользователь №: 8 235
Модель телефона: Moto
Прошивка: *#9999#


Настроение:
Все невыспавшиеся в следующей жизни будут котами



Рейтинг: 4362



Цитата(VINRARUS @ 29.7.2011, 7:57) *

Osta,
выложы сюда сюда тот файл который прога должна зчитывать.

вот такой он скачивается
Прикрепленный файл 2index.rar   ( 11.82 килобайт ) Кол-во скачиваний: 132
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
VINRARUS
сообщение 29.7.2011, 16:07


Куратор темы

Термоядерный
********

Группа: Пользователи
Сообщений: 3 496
Регистрация: 12.12.2009
Из: Чорнобиль
Пользователь №: 211 044

Рейтинг: 1211



Osta,
чото тот файл не в юникоде, у меня там иногда квадратики.
Фильтром проверил, <hr class="iq"> есть, а слова утверждена нету, наверно изза того что там не юникод.
Но скрипт у меня кусок файла отгрыз и сохранил в 2,5 кб. В принцыпе работает так как ему указали.
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Osta
сообщение 29.7.2011, 16:31


Freestyler
********

Группа: Легенды MotoFan.Ru
Сообщений: 10 329
Регистрация: 20.7.2004
Пользователь №: 8 235
Модель телефона: Moto
Прошивка: *#9999#


Настроение:
Все невыспавшиеся в следующей жизни будут котами



Рейтинг: 4362



можно сделать от первого слова sux до первого слова class="iq" без использования спецсимволов?
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
VINRARUS
сообщение 29.7.2011, 19:15


Куратор темы

Термоядерный
********

Группа: Пользователи
Сообщений: 3 496
Регистрация: 12.12.2009
Из: Чорнобиль
Пользователь №: 211 044

Рейтинг: 1211



нужно уникальное первое слово или сочетание символов. Чтобы не повтоарялося в коде больше нигде, ато указанное тобой слово повторяеться раз 40.
А если за ним будут ненужные слова, их можна отсеять потом.
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
igoripp
сообщение 10.8.2011, 19:49


Самый дерзкий
******

Группа: Пользователи
Сообщений: 1 412
Регистрация: 27.3.2010
Из: Касимов, Муром
Пользователь №: 215 540
Модель телефона: sony ion
Прошивка: Разные

Рейтинг: 1336



Этот код для перевода десятичного числа в двоичное, восьмеричное и шестнадцатеричное. Помогите написать код для перевода bin, oct и hex в dec.
Код
#!/bin/sh
mypath=${0%/*}
cd $mypath
#########################################################Получаем значение десятичного числа#######################
d=$(showTextEntry "Введите число:" "" "")
#########################################################Если ввели 0, выводим сразу же ответ#######################
if [ $d -eq 0 ]
then
p="bin=0 oct=0 hex=0"

else
#########################################################Дублируем полученное число 4 раза#######################
m=$d
w=$d
t=$d
k=$d

#########################################################bin#######################
>def.txt
until [ $d -eq 0 ]
do
e=$(( $d % 2 ))
echo $e>>def.txt
d=$(( $d / 2 ))
done

#########################################################oct#######################
>mno.txt
until [ $m -eq 0 ]
do
e=$(( $m % 8 ))
echo $e>>mno.txt
m=$(( $m / 8 ))
done

#########################################################hex#######################
>wxy.txt
until [ $w -eq 0 ]
do
e=$(( w % 16 ))

if [ $e -eq 0 ]
then
echo $e>>wxy.txt

elif [ $e -eq 1 ]
then
echo $e>>wxy.txt

elif [ $e -eq 2 ]
then
echo $e>>wxy.txt

elif [ $e -eq 3 ]
then
echo $e>>wxy.txt

elif [ $e -eq 4 ]
then
echo $e>>wxy.txt

elif [ $e -eq 5 ]
then
echo $e>>wxy.txt

elif [ $e -eq 6 ]
then
echo $e>>wxy.txt

elif [ $e -eq 7 ]
then
echo $e>>wxy.txt

elif [ $e -eq 8 ]
then
echo $e>>wxy.txt

elif [ $e -eq 9 ]
then
echo $e>>wxy.txt

elif [ $e -eq 10 ]
then
echo A>>wxy.txt

elif [ $e -eq 11 ]
then
echo B>>wxy.txt

elif [ $e -eq 12 ]
then
echo C>>wxy.txt

elif [ $e -eq 13 ]
then
echo D>>wxy.txt

elif [ $e -eq 14 ]
then
echo E>>wxy.txt

elif [ $e -eq 15 ]
then
echo F>>wxy.txt

fi
w=$(( $w / 16 ))
done
#########################################################Переворачиваем строки#######################
sed -n '1!G;h;$p' def.txt>fed.txt
sed -n '1!G;h;$p' mno.txt>onm.txt
sed -n '1!G;h;$p' wxy.txt>yxw.txt

#########################################################Делаем столбики строками#######################
busybox cat fed.txt | busybox tr -d "\n" > def.txt
busybox cat onm.txt | busybox tr -d "\n" > mno.txt
busybox cat yxw.txt | busybox tr -d "\n" > wxy.txt

#########################################################Помещаем в переменную значения файлов#######################
p=`cat def.txt`
echo bin: $p>igo.txt
p=`cat mno.txt`
echo oct: $p>>igo.txt
p=`cat wxy.txt`
echo hex: $p>>igo.txt
p=`cat igo.txt`
fi

#########################################################bin#######################
rm .txt

showQ "Результат dec=$k" "$p" 2      

VINRARUS, Поздравляю с назначением)

Сообщение отредактировал igoripp - 10.8.2011, 19:50
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
VINRARUS
сообщение 11.8.2011, 7:26


Куратор темы

Термоядерный
********

Группа: Пользователи
Сообщений: 3 496
Регистрация: 12.12.2009
Из: Чорнобиль
Пользователь №: 211 044

Рейтинг: 1211



спасиба smile.gif
Ну тут будет сложновато. Нада все действия в обратном порядке делать.
Например строчку опять столбиком будет тяжеловато сделать.
И комбинацию e=$(($d%2)) например я незнаю как обратить, ведь там, как я понял, с любого числа получаються 1 или 2 (тоесть процес не обратим).
К стати етот код точно правильно общитывает?




Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
IlluminatI
сообщение 11.8.2011, 7:59


Ветеран
*****

Группа: Пользователи
Сообщений: 670
Регистрация: 15.8.2009
Из: Украина, г.Харьков
Пользователь №: 204 570
Модель телефона: [DROID MAXX][RAZR M]


Настроение:
139



Рейтинг: 520



Цитата(igoripp @ Вчера, 22:49)
* Этот код для перевода десятичного числа в двоичное, восьмеричное и шестнадцатеричное. Помогите написать код для перевода bin, oct и hex в dec.

жесть... это всё безобразие надо в цикл сворачивать, причём сразу. При таком кол-ве одинаковых строк очень легко незаметить ошибку
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
igoripp
сообщение 11.8.2011, 8:03


Самый дерзкий
******

Группа: Пользователи
Сообщений: 1 412
Регистрация: 27.3.2010
Из: Касимов, Муром
Пользователь №: 215 540
Модель телефона: sony ion
Прошивка: Разные

Рейтинг: 1336



Считать должен правильно, я проверял только на простых числах... Которые в уме могу посчитать. Алгоритм должен быть правильный)
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
IlluminatI
сообщение 11.8.2011, 8:04


Ветеран
*****

Группа: Пользователи
Сообщений: 670
Регистрация: 15.8.2009
Из: Украина, г.Харьков
Пользователь №: 204 570
Модель телефона: [DROID MAXX][RAZR M]


Настроение:
139



Рейтинг: 520



в hex можно делать проверку: если от 0 до 9 то записывать цифру, а для букв можно оставить эту часть кода, а если есть что-то вроде switch() то юзать его. Для bin и oct, можно создать массив из двух элементов, с числами 2 и 8, и часть кода bin засунуть в цикл.
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
igoripp
сообщение 11.8.2011, 8:05


Самый дерзкий
******

Группа: Пользователи
Сообщений: 1 412
Регистрация: 27.3.2010
Из: Касимов, Муром
Пользователь №: 215 540
Модель телефона: sony ion
Прошивка: Разные

Рейтинг: 1336



Там и так цикл есть)

Добавлено позже (11.8.2011, 12:06):
Насчет хекс, ты прав) а остальное я не понял(
until это и есть цикл

Сообщение отредактировал igoripp - 11.8.2011, 8:08
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
IlluminatI
сообщение 11.8.2011, 8:48


Ветеран
*****

Группа: Пользователи
Сообщений: 670
Регистрация: 15.8.2009
Из: Украина, г.Харьков
Пользователь №: 204 570
Модель телефона: [DROID MAXX][RAZR M]


Настроение:
139



Рейтинг: 520



я сишными вставками покажу)
Код

int ss[2] = { 2, 8 };
for( int i = 0; i < 2; i++ )
{
until [ $d -eq 0 ]
do
e=$(( $d % ss[i] ))
echo $e>>def.txt
d=$(( $d / ss[i] ))
done
}

вот такой код переводит в двоичную и восьмеричную системы счисления
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Programmer-tm(Мотофан.)
сообщение 11.8.2011, 9:20


Мотофан
*******

Группа: Пользователи
Сообщений: 1 681
Регистрация: 21.3.2010
Из: Из мира сего
Пользователь №: 215 291
Модель телефона: Moto X Play
Прошивка: Модифицированная...


Настроение:
Делать невозможное возможным...



Рейтинг: 620



Ребят. Давайте подумаем, как сделать русско английский перевод нормально.
Пока у меня такая идея:

Код

Perevod()
{
slovo=`showTextEntry 0 "Translator" "Введите текст:"`
if [ "$slovo" = "" ]
then
    showQ "Translator" "Я не могу перевести пустоту... Введёте слово снова?" 1
    tmp1="$?"
    if [ "$tmp1" = "1" ]
    then
        Perevod
    else
        showNotify "Translator" "Вы отаказались от ввода..." 0 2
        exit
    fi
else
    if sed "/^$slovo/!d" $mypath/data2/bd
    then
        text="`sed "/^$slovo/!d" $mypath/data2/bd`"
        showQ "Translator" "$text" 2
    else
        showNotify "Translator" "Извините, но такого слова нету в моей базе..." 0 2
        exit
    fi
fi
}
Perevod


Ну тут он дофига ненужных строк ещё припысывает...
Вот думаю как побороть...
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
VINRARUS
сообщение 11.8.2011, 10:23


Куратор темы

Термоядерный
********

Группа: Пользователи
Сообщений: 3 496
Регистрация: 12.12.2009
Из: Чорнобиль
Пользователь №: 211 044

Рейтинг: 1211



if GROB="`sed "/^$slovo/!d" $mypath/data2/bd`"
then
text="$GROB"

так поиск будет в 2 раза быстрее.
Ну а с ненужными строками нада бороться или указуя конкретнее фразы, либо ограничивая искомое слово с обох сторон.
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
IlluminatI
сообщение 11.8.2011, 12:01


Ветеран
*****

Группа: Пользователи
Сообщений: 670
Регистрация: 15.8.2009
Из: Украина, г.Харьков
Пользователь №: 204 570
Модель телефона: [DROID MAXX][RAZR M]


Настроение:
139



Рейтинг: 520



а не проще посимвольно искать? Геморойней конечно в разы, но тогда поиск будет успешен при однокоренных словах, или выдавать из базы похожие результаты когда поиск не выдал точно такое же слово из базы.
ну к примеру, если юзер введёт слово "пистолеты" то поиск будет неуспешен, хотя слово "пистолет" будет в бд. Где-то у меня в лекциях был поиск по символам, даже привёден алгоритм.
Цитата(VINRARUS @ Сегодня, 13:23)
* if GROB="`sed "/^$slovo/!d" $mypath/data2/bd`"

если не сложно, расскажите что эта строка означает smile.gif

Сообщение отредактировал IlluminatI - 11.8.2011, 12:02
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Programmer-tm(Мотофан.)
сообщение 11.8.2011, 12:53


Мотофан
*******

Группа: Пользователи
Сообщений: 1 681
Регистрация: 21.3.2010
Из: Из мира сего
Пользователь №: 215 291
Модель телефона: Moto X Play
Прошивка: Модифицированная...


Настроение:
Делать невозможное возможным...



Рейтинг: 620



IlluminatI,
Это значит если найдется содержимое переменной $slovo (указана выше) в bd по адресу...
Значит она положится в переменную GROB (Плачевная переменная какая-то) не находите)
И процесс пойдет дальше под then...

...в зависимости от того найдет ли sed шото, иначе пойдет процес под else...

Сообщение отредактировал VINRARUS - 11.8.2011, 13:26
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
igoripp
сообщение 11.8.2011, 19:02


Самый дерзкий
******

Группа: Пользователи
Сообщений: 1 412
Регистрация: 27.3.2010
Из: Касимов, Муром
Пользователь №: 215 540
Модель телефона: sony ion
Прошивка: Разные

Рейтинг: 1336



User and Linux part1 и User and Linux part2 - статьи размещенные в журнале User and Linux, они дают возможность освоить основные возможности bash за полтора часа. Именно с них я и начинал своё учение.
Девид Тейнсли - LINUX и UNIX. Программирование в SHELL - очень понятно и поэтапно всё изложено. Все действия происходят используя интерпретатор sh, командного языка shell. Nо, что читаю в нынешнее время.
C. Скловская - команды Linux - справочник по командам Linux, незаменимая вещь, если надо вспомнить синтаксис и опции какой либо команды.
Д. ДЖ. Баррет - Linux. Основные команды. Карманный справочник - справочник по командам Linux, незаменимая вещь, если надо вспомнить синтаксис и опции какой либо команды.
Mendel Cooper - Advanced Bash-Scripting Guide - на русском, самое полное руководство по интерпретатору bash, командного языка shell.
Грэм Гласс, Кинг Эйблс - Unix для программистов и пользователей - в доступной и наглядной форме изложены все аспекты работы в ОС UNIX, включая обсуждение основных концепций ОС, основных утилит, различных оболочек, сетевой организации оконных систем, системного программирования, свойств и администрирования системы.



Грэм Гласс, Кинг Эйблс - Unix для программистов и пользователей
С. Скловская - команды Linux


Что бы открыть всё это через нативную программу Djvu Reader, переименуйте название книг в более короткие (латиница без пробелов), а затем открывайте)

Сообщение отредактировал igoripp - 12.8.2011, 12:52
Прикрепленный файл Mendel_Cooper_-_Advanced_Bash-Scripting_Guide.zip   ( 2.29 мегабайт ) Кол-во скачиваний: 178
Прикрепленный файл Д._ДЖ._Баррет_-_Linux._Основные_команды._Карманный_справочник.zip   ( 1.11 мегабайт ) Кол-во скачиваний: 151
Прикрепленный файл Девид_Тейнсли__-_LINUX_и_UNIX._Программирование_в_SHELL.zip   ( 4.29 мегабайт ) Кол-во скачиваний: 162
Прикрепленный файл User_and_Linux_part1.zip   ( 275.44 килобайт ) Кол-во скачиваний: 184
Прикрепленный файл User_and_Linux_part2.zip   ( 197.38 килобайт ) Кол-во скачиваний: 252
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
VINRARUS
сообщение 16.8.2011, 9:54


Куратор темы

Термоядерный
********

Группа: Пользователи
Сообщений: 3 496
Регистрация: 12.12.2009
Из: Чорнобиль
Пользователь №: 211 044

Рейтинг: 1211



Код
#!/bin/sh
CFGPATH=${0%/*}/nastroyka.cfg
Z2="/mmc/mmca1/musor.mp3"
Z1="MP3"
if ZZ=`sed "s/^$Z1 = .*/$Z1 = $Z2/" $CFGPATH`
then
echo "$ZZ" > $CFGPATH
echo "OK"
else
echo "Ups..."
fi

Может кому пригодится, меняет параметр в нужном конфиге.

Сообщение отредактировал VINRARUS - 16.8.2011, 10:00
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Programmer-tm(Мотофан.)
сообщение 27.8.2011, 5:33


Мотофан
*******

Группа: Пользователи
Сообщений: 1 681
Регистрация: 21.3.2010
Из: Из мира сего
Пользователь №: 215 291
Модель телефона: Moto X Play
Прошивка: Модифицированная...


Настроение:
Делать невозможное возможным...



Рейтинг: 620



Код

#!/bin/sh
CFGPATH=${0%/*}/1.cfg

Z2="4321" #not modify

Z1="prog" #new

Z11="fi" #old

if ZZ=`sed "s/^$Z11=$Z2/$Z1=$Z2/g" $CFGPATH` #comand modify
then
  echo "OK" #input
  echo "$ZZ" #input
else
  echo "Ups..." #input
fi


А у меня вот так норм заробило...
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
igoripp
сообщение 30.8.2011, 13:19


Самый дерзкий
******

Группа: Пользователи
Сообщений: 1 412
Регистрация: 27.3.2010
Из: Касимов, Муром
Пользователь №: 215 540
Модель телефона: sony ion
Прошивка: Разные

Рейтинг: 1336



Уважаемые, как заархивировать папку bd, лежащую рядом со скриптом? Файл - с легка получилось, а вот с папкой проблема... Мне не важно в какой именно архив будет, будь то *.zip, *.gz или подобные) Но важно, что б я смог скриптом этот же файл-архив распаковать!
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Programmer-tm(Мотофан.)
сообщение 30.8.2011, 13:58


Мотофан
*******

Группа: Пользователи
Сообщений: 1 681
Регистрация: 21.3.2010
Из: Из мира сего
Пользователь №: 215 291
Модель телефона: Moto X Play
Прошивка: Модифицированная...


Настроение:
Делать невозможное возможным...



Рейтинг: 620



Пакуем:

/usr/local/p7zip/7z (путь где архиватор валяется) a "$mypath/name"(собстно куда мы архив кинем и под каким именем) "/mmc/mmca1/BOX/" (папушка, которую решили пакернуть)

Распаковываем:

/usr/local/p7zip/7z(путь где архиватор валяется) x "$mypath/name.7z"(собстно куда мы архив кидали и под каким именем) -o"/mmc/mmca1/"(папушка, в которую решили извлекать)

Все, что в скобках можно похерить... Остальное - команды...

Сообщение отредактировал Programmer-tm(Мотофан.) - 30.8.2011, 14:00
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Diag
сообщение 30.8.2011, 18:13


Ветеран
*****

Группа: Пользователи
Сообщений: 315
Регистрация: 2.5.2008
Из: г. Краснодар
Пользователь №: 171 112
Модель телефона: Motorola ROKR™ EM 30
Прошивка: R6716_G_71.04.06R_C

Рейтинг: 164



Можно для распаковки busybox unzip использовать...
unzip /путь/к/архиву.zip -d /папка/куда/извлечется/содержимое.
Ну это так, на заметку.

Да, ребят, хотел спросить.
Допустим, что через find по расширению *.cfg я нашел один файл (например, /mmc/mmca1/config.cfg). Как мне отдельно выцепить имя файла и путь к папке, где этот самый файл расположен?

Сообщение отредактировал Diag - 30.8.2011, 18:17
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Programmer-tm(Мотофан.)
сообщение 30.8.2011, 18:17


Мотофан
*******

Группа: Пользователи
Сообщений: 1 681
Регистрация: 21.3.2010
Из: Из мира сего
Пользователь №: 215 291
Модель телефона: Moto X Play
Прошивка: Модифицированная...


Настроение:
Делать невозможное возможным...



Рейтинг: 620



Diag,
То же вариант) Ну, выберет, что больше приглянется...

Просто я парольный архиватор мутил, вот и такие команды получились почти... ну ещё -p"password" был...

Сообщение отредактировал Programmer-tm(Мотофан.) - 30.8.2011, 18:18
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Написание скриптов #!/bin/sh for UNIX, Кто поможет? · Motorola на Linux OS · Forum
 

7 страниц V < 1 2 3 4 > » 
Ответ в темуСоздание новой темы
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



Текстовая версия Сейчас: 19.7.2025, 3:27

Форум живёт: