Комментарии 16
Хорошо, но мало.
Посоветуйте, что можно почитать/посмотреть для прокачки скилов по bash?
man bash
:)
Не посчитайте рекламой, но мне нравится канал в телеге basdays. Неформально, с огоньком и матерком, и много интересного всякого.
Ну и по классике Advanced Bash Scripting Guide
https://www.gnu.org/software/bash/manual/html_node/index.html
лучшего точно нет
salt bash from google.
хорошо работают функции и перенаправление в них
LOG_FILE="my.log"
log() {
local lin
while read lin; do
echo $(date)" $lin" >>LOG_FILE
done
}
...
ls | log
или чтение посточное чтение из файла в while
while read lin; do
echo $(date)" $lin" >>LOG_FILE
done <( cat "somefile.txt" )

хорошо работает set
, например set -exo pipefail
чтобы остановиться на первой ошибке, чтобы получить ошибку из последней команде в pipe, чтобы вывести лог исполнения
trap 'at_exit' EXIT INT TERM
at_exit() {
trap - EXIT INT TERM
# cleanup at exit
}
tar zcvf - /www/data | ssh user@remoter "cat > /backup/wwwdata.tar.gz"
Тут можно просто опустить опцию -f, и оно пойдет в stdout. А на удаленной стороне можно сразу распаковать:
tar cvz . /www/data| ssh student1@localhost "tar xvz --directory=/www/data"
$mkdir folder{1,2}
$touch dir1/test1.txt
$touch dir2/test2.txt
${ ls dir1; ls dir2; } | wc -l
2
Кстати здесь, мне кажется, ошибка. Должно быть mkdir dir{1,2}
. Или я что-то не понимаю...
объясните подробнее, пожалуйста, что значит
exec 5<>/dev/tcp/host/port
Второй пример можно покороче:
{ echo -e "GET / HTTP/1.1\n\n" >&5; cat <&5; } 5<>/dev/tcp/google.de/80
Кручу-верчу, запутать хочу