Форум русскоязычного сообщества Ubuntu


Хотите сделать посильный вклад в развитие Ubuntu и русскоязычного сообщества?
Помогите нам с документацией!

Голосование

Нужна ли данная ветка

Да
Нет
Затрудняюсь ответить

Автор Тема: Полезные скрипты на bash  (Прочитано 32592 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн ReNzRv

  • Старожил
  • *
  • Сообщений: 2648
    • Просмотр профиля
Re: Полезные скрипты на bash
« Ответ #15 : 14 Июня 2020, 13:17:49 »
Dosifei, Никак. Это изначально была одна команда зачем-то обозванная "скриптом"  :-\

Оффлайн Lex Alexov

  • Активист
  • *
  • Сообщений: 291
    • Просмотр профиля
Re: Полезные скрипты на bash
« Ответ #16 : 15 Июня 2020, 01:14:38 »
как это со скриптом соотносится?

Заверни поток в m3u и подставь в скрипт)
Samsung NP-530U4b-S01; Intel i3-2367M (4) @ 1.44GHz; 8Gb DDR3 1333 МГц; AMD Radeon HD 7550M; Intel HD Graphics 4000; KDE-Neon 5.21 x64;

Оффлайн Dosifei

  • Участник
  • *
  • Сообщений: 190
    • Просмотр профиля
Re: Полезные скрипты на bash
« Ответ #17 : 15 Июня 2020, 19:27:43 »
Заверни поток в m3u и подставь в скрипт)
Расшифруй.

Оффлайн Azure

  • Модератор раздела
  • Старожил
  • *
  • Сообщений: 6017
  • Windows10, i3wm on Debian9, Manjaro20.0
    • Просмотр профиля
Re: Полезные скрипты на bash
« Ответ #18 : 15 Июня 2020, 20:30:38 »
В Линукс можно сделать ВСЁ что угодно, достаточно знать КАК !

Оффлайн Dosifei

  • Участник
  • *
  • Сообщений: 190
    • Просмотр профиля
Re: Полезные скрипты на bash
« Ответ #19 : 15 Июня 2020, 23:04:50 »
Lex Alexov, Azure, большое вам спасибо,только чёт граф.интерфейса нет,только саунд,и файл открыт.Файл закрываешь а звук всё равно идёт,я запускаю щёлчком мыши по файлу,а если через терминал то как тогда?
« Последнее редактирование: 15 Июня 2020, 23:17:38 от Dosifei »

Dzhoser

  • Автор темы
  • Гость
Re: Полезные скрипты на bash
« Ответ #20 : 16 Июня 2020, 00:30:49 »
sudo killall mpv завершение процесса

Оффлайн Lex Alexov

  • Активист
  • *
  • Сообщений: 291
    • Просмотр профиля
Re: Полезные скрипты на bash
« Ответ #21 : 16 Июня 2020, 01:03:39 »
граф.интерфейса нет

так его и не будет
Хочешь гуй - слушай в плеере. Большинство плееров поддерживают потоковое воспроизведение
Samsung NP-530U4b-S01; Intel i3-2367M (4) @ 1.44GHz; 8Gb DDR3 1333 МГц; AMD Radeon HD 7550M; Intel HD Graphics 4000; KDE-Neon 5.21 x64;

Dzhoser

  • Автор темы
  • Гость
Re: Полезные скрипты на bash
« Ответ #22 : 16 Июня 2020, 07:56:50 »
Отображение в терминале приветствия и статистики по памяти и дисковому пространству. Данный текст необходимо добавить в конец файла .bashrc расположенного в домашнем каталоге пользователя.
(Нажмите, чтобы показать/скрыть)

Оффлайн The Green Side

  • Старожил
  • *
  • Сообщений: 1178
    • Просмотр профиля
Re: Полезные скрипты на bash
« Ответ #23 : 16 Июня 2020, 08:18:14 »
Dzhoser,
(Нажмите, чтобы показать/скрыть)
Debian 11, Debian 11 Server

Оффлайн MooSE

  • Старожил
  • *
  • Сообщений: 1110
    • Просмотр профиля
Re: Полезные скрипты на bash
« Ответ #24 : 17 Июня 2020, 14:55:53 »
Тема уже превращается в помойку, в которой трудно найти что-то полезное.

ИМХО ей нужно оглавление и чистка от флуда.


Оффлайн Dosifei

  • Участник
  • *
  • Сообщений: 190
    • Просмотр профиля
Re: Полезные скрипты на bash
« Ответ #25 : 17 Июня 2020, 20:31:13 »
MooSE, нуу кому как,я вот например радио слушаю благодаря скрипту,вот уже что-то полезное,может быть вам что-то масштабное нужно,глобальное так сказать.
ИМХО ей нужно оглавление и чистка от флуда.

Здесь нужно систему благодарностей ввести за полезные сообщения,большое дело делаем считаю,в одиночку фактически борьбу ведём,развивавем так сказать свободное ПО,что может быть лучше.
« Последнее редактирование: 17 Июня 2020, 20:35:53 от Dosifei »

Dzhoser

  • Автор темы
  • Гость
Re: Полезные скрипты на bash
« Ответ #26 : 23 Июня 2020, 16:20:24 »
Игра "Пятнашки на bash" без регистрации и смс
#!/bin/bash

draw_board(){
    clear
    D="-----------------"
    S="%s\n|%3s|%3s|%3s|%3s|\n"
    printf $S $D ${M[0]:-"."} ${M[1]:-"."} ${M[2]:-"."} ${M[3]:-"."}
    printf $S $D ${M[4]:-"."} ${M[5]:-"."} ${M[6]:-"."} ${M[7]:-"."}
    printf $S $D ${M[8]:-"."} ${M[9]:-"."} ${M[10]:-"."} ${M[11]:-"."}
    printf $S $D ${M[12]:-"."} ${M[13]:-"."} ${M[14]:-"."} ${M[15]:-"."}
    echo $D
}

init_game(){
    M=()
    EMPTY=
    RANDOM=$RANDOM
    for i in {1..15}
    do
        j=$(( RANDOM % 16 ))
        while [[ ${M[j]} != "" ]]
        do
            j=$(( RANDOM % 16 ))
        done
        M[j]=$i
    done
    for i in {0..15}
    do
        [[ ${M[i]} == "" ]] && EMPTY=$i
    done
    draw_board
}

exchange(){
    M[$EMPTY]=${M[$1]}
    M[$1]=""
    EMPTY=$1
}

quit_game(){
    while :
    do
        read -n 1 -s -p "Do you really want to quit [y/n]?"
        case $REPLY in
            y|Y) exit
            ;;
            n|N) return
            ;;
        esac
    done
}

check_win(){
    for i in {0..14}
    do
        if [ "${M[i]}" != "$(( $i + 1 ))" ]
        then
            return
        fi
    done
    echo "You won! Want to play another game [y/n]?"
    while :
    do
        read -n 1 -s
        case $REPLY in
            y|Y)
                init_game
                break
            ;;
            n|N) exit
            ;;
        esac
    done
}

start_game(){
while :
do
    echo "Use w,a,s,d to move, q for quit"
    read -n 1 -s
    case $REPLY in
        w)
            [ $EMPTY -lt 12 ] && exchange $(( $EMPTY + 4 ))
        ;;
        a)
            COL=$(( $EMPTY % 4 ))
            [ $COL -lt 3 ] && exchange $(( $EMPTY + 1 ))
        ;;
        s)
            [ $EMPTY -gt 3 ] && exchange $(( $EMPTY - 4 ))
        ;;
        d)
            COL=$(( $EMPTY % 4 ))
            [ $COL -gt 0 ] && exchange $(( $EMPTY - 1 ))
        ;;
        q)
            quit_game
        ;;
    esac
    draw_board
    check_win
done
}

init_game
start_game
« Последнее редактирование: 23 Июня 2020, 16:22:11 от Dzhoser »

Оффлайн Dosifei

  • Участник
  • *
  • Сообщений: 190
    • Просмотр профиля
Re: Полезные скрипты на bash
« Ответ #27 : 09 Июля 2020, 21:44:04 »
Приобрел себе такую экшн-камеру попробовал и один существенный недостаток обнаружил: пишет она на sd-карту в формате AVI,который в свою очередь разделён на 2 потока JPEG и PCM  ,сейчас точно названий не помню,но итоговый файл выходит размеров капитальных,к примеру час такого вот видео и займет почти все 16gb объёма sd-карточки.Так как настроек никаких камера не позволяет сделать,было принято решение сжимать файлы avi в матроску.Для чего и найден был соответствующий скрипт:
(Нажмите, чтобы показать/скрыть)

Происходит всё это дело с помощью FFMPEG, в Windows было что-то подобное,но толку от от этого инструмента там не было никакого.Запускается скрипт наш так
./avitomkv.sh file.aviтак как у меня файлы начинаются с DVO то запускал с таким аргументом
./avitomkv.sh DVO*.avicоответственно кодировалось сразу несколько файлов,опции в строке кодирования вы можете ставить свои,я привёл вам простенький вариант,при котором и размер сжимается прилично более и качество не страдает,что ещё хотелось бы добавить,кодирование однопроходное - crf может иметь значение от 0 до 51.Значение 0 - это так называемый losless то есть без потери качества,чтобы более было понятно это что-то вроде изменения битрейта,но тут наоборот чем выше значения crf тем больше сжатие и хуже качество,вобщем если этой темой интересуетесь ищите информацию по FFMPEG.Инструмент мощный изучайте.

PS.Забыл сказать этот скрипт также может кодировать и другие форматы не только avi(mpeg,flv итд)
« Последнее редактирование: 10 Июля 2020, 19:09:01 от Dosifei »

Оффлайн Dosifei

  • Участник
  • *
  • Сообщений: 190
    • Просмотр профиля
Re: Полезные скрипты на bash
« Ответ #28 : 19 Июля 2020, 18:21:08 »
Так я вижу тему развивать никто не хочет,и не надо я сам продолжу:вот мы получили готовые сжатые матроски,а если они примерно на одну тему нужно их объединить,для этого пишем следующий скрипт:
(Нажмите, чтобы показать/скрыть)

Предварительно создаём в хомяке текстовый файл flist куда по очерёдности вписываем названия видеофайлов.

Dzhoser

  • Автор темы
  • Гость
Re: Полезные скрипты на bash
« Ответ #29 : 19 Июля 2020, 21:27:40 »
Генератор случайных чисел
#!/bin/bash
 
# $RANDOM возвращает различные случайные числа при каждом обращении к ней.
# Диапазон изменения: 0 - 32767 (16-битовое целое со знаком).
 
MAXCOUNT=10
count=1
 
echo
echo "$MAXCOUNT случайных чисел:"
echo "-----------------"
while [ "$count" -le $MAXCOUNT ]      # Генерация 10 ($MAXCOUNT) случайных чисел.
do
  number=$RANDOM
  echo $number
  let "count += 1"  # Нарастить счетчик.
done
echo "-----------------"
 
# Если вам нужны случайные числа не превышающие определенного числа,
# воспользуйтесь оператором деления по модулю (остаток от деления).
 
RANGE=500
 
echo
 
number=$RANDOM
let "number %= $RANGE"
echo "Случайное число меньше $RANGE  ---  $number"
 
echo
 
# Если вы желаете ограничить диапазон "снизу",
# то просто производите генерацию псевдослучайных чисел в цикле до тех пор,
# пока не получите число большее нижней границы.
 
FLOOR=200
 
number=0   # инициализация
while [ "$number" -le $FLOOR ]
do
  number=$RANDOM
done
echo "Случайное число, большее $FLOOR ---  $number"
echo
 
 
# Эти два способа могут быть скомбинированы.
number=0   #initialize
while [ "$number" -le $FLOOR ]
do
  number=$RANDOM
  let "number %= $RANGE"  # Ограничение "сверху" числом $RANGE.
done
echo "Случайное число в диапазоне от $FLOOR до $RANGE ---  $number"
echo
 
 
# Генерация случайных "true" и "false" значений.
BINARY=2
number=$RANDOM
T=1
 
let "number %= $BINARY"
# let "number >>= 14"    дает более равномерное распределение
# (сдвиг вправо смещает старший бит на нулевую позицию, остальные биты обнуляются).
if [ "$number" -eq $T ]
then
  echo "TRUE"
else
  echo "FALSE"
fi
 
echo
 
 
# Можно имитировать бросание 2-х игровых кубиков.
SPOTS=7   # остаток от деления на 7 дает диапазон 0 - 6.
ZERO=0
die1=0
die2=0
 
# Кубики "выбрасываются" раздельно.
 
  while [ "$die1" -eq $ZERO ]     # Пока на "кубике" ноль.
  do
    let "die1 = $RANDOM % $SPOTS" # Имитировать бросок первого кубика.
  done
 
  while [ "$die2" -eq $ZERO ]
  do
    let "die2 = $RANDOM % $SPOTS" # Имитировать бросок второго кубика.
  done
 
let "throw = $die1 + $die2"
echo "Результат броска кубиков = $throw"
echo
 
 
exit 0

 

Страница сгенерирована за 0.042 секунд. Запросов: 28.