LINUX.ORG.RU
ФорумTalks

Мне нужно мощное пособие по бэшу, желательно в pdf

 , ,


4

4

Суть такова: глоббинги-фигобинги, джокеры и прочее, распространённые команды(финд-фигинд) и так далее, короче всё, что только можно в одной книжке, ну или хотя бы в двух-трёх. И чтоб свободно скачать.

Подскажите, пожалуйста, друзья.

★★★★★

Ответ на: комментарий от burato

Дак дело не в грамматике, а в жаргоне. Тоже самое как и «запасный» выход, а не запасной и т.п. Если его с покон веков величают бАшем, то хоть ты об-Э-кайся, но бАшем он быть не перестанет.

Oberstserj ★★
()
Ответ на: комментарий от Deleted

А как иначе, писать русское «э», где закрытый английский «а», принято, как я понимаю, чтобы отличать его от краткого закрытого «u».

papin-aziat ★★★★★
()
Ответ на: комментарий от Siado

А, я подумал ты из этих, извини.

Там относительно недавно обсуждали почему баш такое Г.

Имхо, субъекты сообщающие, что некий объект есть порция фекалий, но не приводящих аргументированных доводов и альтернатив, автоматически, вполне могут быть классифицированы таким же способом, при выступлении в качестве объекта.

pon4ik ★★★★★
()

По теме - есть годный курс на степике, если не принципиально именно книжку. Там не всё, но самое попсовое рассмотренно и с практикумом.

После прохождения половины курса, БА бывший 1С конфигуратор первый раз увидавшая онтопик довольно бодро по ssh на серверах ползала.

pon4ik ★★★★★
()
Последнее исправление: pon4ik (всего исправлений: 1)
Ответ на: комментарий от foxy_ant

в примерах с printf нашел недокументированный ключ

Недокументированный ключ — баг документации. Не скрывайте, поделитесь.

(Впрочем, я думаю, вы просто читали какую-то не ту документацию. Возможно, устаревшую. Или, возможно, не от того printf’а.)

Zmicier ★★★★★
()
Ответ на: комментарий от Zmicier

вы просто читали какую-то не ту документацию

Возможно читал не то что нужно. Читал man и документацию по ссылке указанной в man'е, это первое что начал читать. Потом уже нашел что нужно на bash-hackers.

foxy_ant ★★
()
Ответ на: комментарий от foxy_ant

Читал man и http://www.gnu.org/software/coreutils/printf

Надо — два из трех угадал!

man — это «не та» документация, в том смысле, что она заведомо неполная, и называть то, чего в нем нет, «недокументированным» никак нельзя.

А printf(1) из Coreutils — это, очевидно, не printf из Баша.

Потом уже нашел что нужно на bash-hackers.

То есть по существу не ответите? ;-)

Что ж, попробую угадать и здесь — речь о запросе времени, и костылем, соответственно был date(1):

$ printf -v today '%(%Y-%m-%d)T'
$ echo $today
2018-04-25
Zmicier ★★★★★
()
Последнее исправление: Zmicier (всего исправлений: 1)
Ответ на: комментарий от Zmicier

Хм, на удивление быстро нашел, хотя писал это 5 лет назад.

printf '0%.3s' $(echo 5 / 7 | bc -l)

Здесь «5» и «7» для примера, в реале подхватываются расчетные значения.

Надо было в результат добавить ведущий «0» и сократить запись до двух чисел после запятой.

foxy_ant ★★
()
Ответ на: комментарий от foxy_ant

Надо было в результат добавить ведущий «0» и сократить запись до двух чисел после запятой

А зачем здесь printf?

echo 0`bc<<<"scale=2;5/7"`


И более того, а зачем здесь bc?
echo 0.$((100*5/7))


И главный вопрос, а почему не перлопитоны, если уж в скрипте нужна вещественная арифметика?
perl -e 'printf "%01.2f\n",5/7;'

redgremlin ★★★★★
()
Ответ на: комментарий от foxy_ant

printf '0%.3s' $(echo 5 / 7 | bc -l)

Это называется «убрали костыль»? :-)

Надо было в результат добавить ведущий «0» и сократить запись до двух чисел после запятой.

И чего же здесь недокументированного? Что в форматную строку можно писать просто символы?

Zmicier ★★★★★
()
Ответ на: комментарий от redgremlin

А зачем здесь printf?

Чтобы вывести результат?

echo

Ну в данном случае можно, конечно, но зачем вообще задумываться, когда там его можно безопасно запользовать, когда есть printf?

а почему не перлопитоны
если уж в скрипте нужна вещественная арифметика?

Так она не нужна. Нужна, как вы правильно заметили, с фиксированной запятой.

Zmicier ★★★★★
()
Ответ на: комментарий от Zmicier

но зачем вообще задумываться, когда там его можно безопасно запользовать, когда есть echo?

Fixed. echo же более безопасная, это в printf надо за аргументами и спецификаторами следить, так что printf — только для форматирования текста.

Так она не нужна

Только вот что его, что мои баш-варианты, в случае замены 5 на 15 будут давать лишний 0 перед числом, а вот мой перловый вариант скушает.

redgremlin ★★★★★
()

Дэвид Тейнсли - Linux и Unix. Программирование в SHELL

везде есть в djvu. Но встречался вариант распознавания в PDF (можно в поиск по словам)

yax123 ★★★★★
()
Ответ на: комментарий от redgremlin

но зачем вообще задумываться, когда там его можно безопасно
запользовать, когда есть printf?


но зачем вообще задумываться, когда там его можно безопасно
запользовать, когда есть echo?

Fixed.

Broken.

echo же более безопасная

Нет:

$ s='-e'
$ echo "$s"

$

это в printf надо за аргументами и спецификаторами следить,

Нет:

$ printf '%s\n' "$s"
-e
$

так что printf — только для форматирования текста.

Для любого вывода, для получения даты и времени, иногда просто для присвоений.

Только вот что его, что мои баш-варианты, в случае замены 5 на 15 будут давать
лишний 0 перед числом

Странно, а мои не будут.

Zmicier ★★★★★
()
Ответ на: комментарий от pon4ik

Имхо, субъекты сообщающие, что некий объект есть порция фекалий, но не приводящих аргументированных доводов и альтернатив, автоматически, вполне могут быть классифицированы таким же способом, при выступлении в качестве объекта.

Это все хабразамашки. На лоре про копротехнологии разговор короткий

Siado ★★★★★
()
Ответ на: комментарий от Zmicier

Посмотрите выше о чем я писал. В man'е и документации на web-страничке я не нашел того, что мне было нужно. Подсказка нашлась на bash-hackers.

Прошу Вас меня строго не судить. Я не программист.

foxy_ant ★★
()
Ответ на: комментарий от Zmicier


Нет:
Нет:


Ну я надеюсь, что ты сам понимаешь, что ты передёргиваешь, подсовывая нерелевантные синтетические варианты.

read s # s ← -e
echo "S=$s" # Out: S=-e

read s # s ← asd
printf %d "$s" # Out: bash: printf: asd: недопустимое число


Странно, а мои не будут

Но ты их даже не показал.

redgremlin ★★★★★
()
Ответ на: комментарий от redgremlin
read s # s ← -e
echo "$s" # хрен

будем по граблям ходить дальше? echo чисто синтаксический сахар для интерактива. всегда printf был для вывода в скриптах чего-то мало мальски сложного, не понимаю с чем ты споришь. Это вроде даже в abs guide написано, по которому все и обучаются

Deleted
()
Последнее исправление: Deleted (всего исправлений: 1)
Ответ на: комментарий от redgremlin

bash: printf: asd: недопустимое число

типизация для бедных же! Забавный хак можно сделать. Юзай %s если тебе тип в формате не важен, вроде логично

Deleted
()
Последнее исправление: Deleted (всего исправлений: 1)
Ответ на: комментарий от redgremlin

Ну я надеюсь, что ты сам понимаешь, что ты передёргиваешь

Нет.

подсовывая нерелевантные ... варианты.

Чему?

Странно, а мои не будут


Но ты их даже не показал.

Неужели это так сложно? Ну, пожалуйста, держите:

declare _lc_dot='.'
printf -v _lc_dot '%.1f' 0
_lc_dot="${_lc_dot:1:-1}"

fixed-point-format ()
{
    local v="$1" n="$2" q="$3" t
    printf -v t "%d%s%d" $(( q / (10 ** n) )) "$_lc_dot" $(( q % (10 ** n) ))
    declare -g "$v"="$t"
}

fixed-point-format t_s 3 $(( 1234567 / 29 ))
printf $"%s seconds\n" "$t_s"
Zmicier ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.