qnikst
? programming Bash sh можно ли каким-то образом в bash (а желательно POSIX sh) "унаследовать" функцию, т.е. допустим есть foo() { } я хочу переопределить foo, так, чтобы сначала вызывалась старая версия, а потом какие-нить доп действия?
Annoynimous
Linux sh Cumshot:
lid)
if [ $(echo "ibase=16;`echo $value | tr '[:lower:]' '[:upper:]'` % 2" | bc) == 0 ]; then
sleep 1
umask 0022
avconv -f video4linux2 -i /dev/video0 -f image2 -frames:v 1 /var/tmp/faces/face-`date +%s`.jpeg
else
DISPLAY=":0.0" xautolock -locknow
fi
viator
Linux trick sh cli Захотелось, запилилось, делюсь. Скрипт для конвертирования документов в pdf средствами openoffice/libreoffice и его открытия в читалке. Поставил средством открытия документов по умолчанию в DE.

viator@nya:~/bin$ cat openpdf
#!/bin/sh
# autoconvert with libreoffice / openoffice

# config
writer=lowriter
# or
#writer=oowriter

format=pdf

reader=evince


source_file="$*"
out_file=${source_file%.*}.$format

$writer --convert-to $format $source_file
$reader $out_file

# vi: ts=2 sw=2
NEKT
Linux Bash sh Наткнулся на интересное поведение шелла. Он каким-то образом умеет вытаскивать и запускать функцию из другого процесса. Основной вопрос — как он это делает? И как это можно использовать на благо человечества?

Пример кода в комментариях
lf
Bash sh Нужен способ ограничить время выполнение команды ( > /dev/tcp/$ip/$port). То есть прибивать по истечению 5 секунд. Вариант с sleep $trime && kill $$ знаю, но не эстетично + лишний вывод в консольке, что не кошерно.
qrilka
? code sh
чтот я в этих переменных шелла совсем не понимаю:
$ find -name '*.hs'
./examples/type.hs
$ str="-name '*.hs'"
$ find $str
$

почему если предикат в переменной find ничего не находит?
mrazik
Unix sh BusyBox Жуйк, помоги! Проблема такая: хочу в качестве шелла поставить юзеру шелл скрипт. Написал скрипт, установил его юзеру, а при логине все время permission denied. При этом если залогинится другим юзером и сделать su в того со скриптом — то все ок. Если этому юзеру поставить обычный шелл, зайти и запустить скрипт руками — все ок. Раньше такого не делал, какие тут могут быть подводные камни, а?
anton0xf
Linux ? sh как запросить пароль из sh-скрипта?
в bash/zsh есть опция -s для этого, а в sh, судя по 'man 1p read', есть только -r.
я думал, что принято скрипты не-только-для-себя писать на sh, а тут такая подстава..
может есть какой-то super-read отдельным пакетом, а я не знаю, или еще что?
Proxy-M
Juick Ubuntu Debian sh Я использую Ubuntu Linux вместо Debian в основном по одной причине. Оно умеет при попытке запуска в терминале программы которой нет в системе автоматически искать ее по не установленным пакетам и выдавать предложение поставить нужный пакет (правда командой apt-get вместо нормального aptitude). найти скрипт который отвечает за это автодейство мне не удалось. juick помоги его найти =)

а еще был один прикол с этим скриптом сегодня. в общем посоветовали мне одну программу (как бы dd со статусбаром, что не совсем правда), при этом названия точного не помня.
1) набираю в терминале:
#ddrescue
ddresсue: команда не найдена
2) вторая попытка:
#ddresque
Команда 'ddresque' не найдена, возможно вы имели в виду:
Команда 'ddrescue' из пакета 'gddrescue' (universe)

хотя должно было быть примерно так:
#ddrescue
Команда 'ddrescue' не найдена в системе:
Команда 'ddrescue' находится в пакете 'gddrescue' (universe)
выполните следующую команду для установки этого пакета:
sudo apt-get install gddrescue
cybermerlin
Linux sh как задавать умолчальные значения параметров запуска скрипта в самом скрипте?
чтобы если пользователь запустил скрипт у него применились умолчальные значения
helgi
links sh _nix reddit.com — Был такой тред про малоизвестные полезные команды, и в нём первое место занимал disown. Вот вчера канонически понадобился, чтобы отключиться, а rsync оставить.
L29Ah
log sh myspace rtmp w3crapcli Чтой-то сабжевый костыль (который w3crapcli.tk помер. RTMP-сервер отказывается отдавать контент по линкам. Оригинальный флешовый плеер же ругается, что у меня якобы плохой флеш (последний официальный под прыщи). Призываю пиратскую общественность.
rtmpdump -r "`Xtract '//rtmp/-' <(curl -sL "http://myspace.com/music/services/player?action=getSong&ptype=300&songId=$1")`" --swfVfy 'http://lads.myspacecdn.com/music/sdkwrapper/SDKWrapper.2.0.82.swf?aytatt=-1&sip=172.16.0.2&fadd=-1&logerr=0&yad=-1&on=1&ratt=-1&hash=MIGmBgkrBgEEAYI3WAOggZgwgZUGCisGAQQBgjdYAwGggYYwgYMCAwIAAQICZgMCAgDABAgnplwM4Ag1ngQQdgWYpGiAcoQguXuaItYqvgRY97w7Qi29'Раньше работало вот так. Теперь получаю
INFO: Connected...
ERROR: rtmp server sent error
ERROR: rtmp server requested close
Попробовал заменить адрес флешеговна на свежий:
‰ grep -o 'http://lads\.myspacecdn\.com/music[^"]*' knifecityny
lads.myspacecdn.com
Не помогло. Wireshark хинтов тоже не даёт, ибо флешеговно даже и не начинает тыкать rtmp.
L29Ah
music Lastfm быдлокодинг sh ‰ cat download-tracks
#!/bin/zsh
# Usage: $0 'The One Electronic'
mkdir -p "$1" || exit 1
cd "$1" || exit 1
for u in `Xtract '*//div/small/a/@href' <(curl -s "http://www.last.fm/music/${1// +}+tracks" | sed -e '/<!–\[if IE\]/d' | tidy -asxml 2>/dev/null | cat -v) | urldecode | urldecode`; do
wget "$u" -O "${${u##*/}//+/ }"
done
‰ cat num
#!/bin/bash
i=0
for f in "$@"; do
mv "$f" "`printf '%04d' "$i"` $f"
: $(( i+=1 ))
done
L29Ah
? Gentoo sh openrc Последние пару релизов наблюдаю в init.d подобное:
— n=$(($n + 1))
+ : $(( n += 1 ))
В чём смысл таких изменений?
anton0xf
Linux ? code sh
почему такая фигня работает, как ожидается
(отрабатывает и печатает по мере поступления):
$ while : ; do echo "hi bu-bu" ; sleep 1 ; done | \
	sed -n 's/^hi \([^ ]*\).*$/\1/p
такая тоже:
$ while : ; do echo "hi bu-bu" ; sleep 1 ; done | \
	grep hi

а вот такая нифига не печатает?:
$ while : ; do echo "hi bu-bu" ; sleep 1 ; done | \
	grep hi | sed -n 's/^hi \([^ ]*\).*$/\1/p
Kim
? sh Жуйк, а есть работающий на sh способ, узнать свой pid в 3 строчке? На bash решается через $BASHPID

1 echo $$
2 { ps ax | grep $0
3 echo $$
4 } &
vbooh
Linux Bash shell XML sh Для манипуляции с xml из shell-скриптов есть очень хороший набор утилит 'xmlstarlet'. Крутая штука, понимает XPath, приятно работать.
wasd
Python Ruby говно sh @wyldrodney:
@Gem Посоны, руби позволяет спиздить всю жуйку с помощью 70 строк кода. Так-то! Ни одна тян не будет настолько же долгоиграющей и всегда податливой.
#1605515/17

@wasd:
@wyldrodney wget -r -l0 juick.com
ну и где теперь твой руби?
#1605515/21

@wyldrodney:
@wasd А как в этом поиск устроить или переход к посту?
#1605515/24

@wasd:
@wyldrodney grep
#1605515/25


посоны, зачем эти рубисты-штангисты-питонисты выёбываются, если всё уже написали до них?
grouzen
? FreeBSD sh такой тупой вопрос. Есть скрипт для чистки логов mysql. При прописывании в крон не срабатывает, точнее как, срабатывает(в логе крона видно, что он запускался), но результат ожидаемого нет. Зато при ручном запуске все впорядке.
Вот строчка из крона:
10 23 * /root/scripts/cleanmysql.sh
А вот сам скрипт:
#!/bin/sh

: > /var/db/mysql/billingbox.err

DBPASS=""
LOGTO=`mysql -u root -p${DBPASS} -e "show binary logs;" | egrep -E "mysql-bin.[0-9]{6}" | awk '{ print $1 }' | tail -n1`

echo $LOGTO

mysql -u root -p${DBPASS} -e "purge binary logs to '${LOGTO}';
mdma
Linux shell sh А как на shell сделать, чтобы автоматически отвечало на вопросы системы? Ну вот допустим, мне нужно в скрипте прописать apt-get install somepackage, а он там спрашивает [Y/n], как в скрипте прописать, чтобы ответ шел Y?
mdma
Linux shell sh PID Подскажите по такому вопросу. Запускается скрипт script.sh по крону, как сделать, чтобы скрипт узнавал свой PID (нужно чтобы он писал свой PID в лог, потому что скриптов может быть запущенно несколько)? Пробовал вот по такому делать PID=`ps -aef | grep "$program" | grep -v grep | awk '{print $2}'`, но скриптов может быть несколько экземпляров, а нужно именно, чтобы узнавал свой PID.
kyzic
sh загадочен мир командной строки. хочу распаковать кучу архивов, набираю unzip archive*.zip и распаковывается только archive001.zip, а на остальные ругается "filename not matched". после долгих мучений обнаружил, что проходит комбинация unzip 'archive*.zip'. а все потому, что первый аргумент unzip воспринимает как источник, то есть архив, а остальные — как файлы, которые нужно извлечь из архива. когда набираешь unzip archive*.zip оболочка делает свою работу, найдя в каталоге файлы соответствующие выражению и передает их имена утилите unzip в виде unzip archive001.zip archive002.zip archive002.zip ... а unzip понимает как "извлеки из archive001.zip файлы archive002.zip archive003.zip ...". ну и соответственно когда мы добавляем выражение archive*.zip в кавычки, то утилита unzip принимает все имена за один аргумент, как нам и нужно.
ramok
Bash sh fun&profit вопрос: "а посоветуйте чего нибудь такого чтоб вывод в консоль был непонятный и на весь экран?" решение: xxd -c $((COLUMNS / 4)) /dev/urandom | while read LINE; do echo -e "\e[0;32m$LINE\e[0m"; sleep .$((RANDOM % 10)); done