LINUX.ORG.RU

Не работает скрипт system-usb-mount.sh

 , , , ,


0

2

хочу использовать вывод в polybar

когда запускаю скрипт, ничего не происходит(выводит пустую строку)

#!/bin/sh

devices=$(lsblk -Jplno NAME,TYPE,RM,SIZE,MOUNTPOINT,VENDOR)

case "$1" in
    --mount)
        for mount in $(echo "$devices" | jq -r '.blockdevices[]  | select(.type == "part") | select(.rm == "1") | select(.mountpoint == null) | .name'); do
            udisksctl mount --no-user-interaction -b "$mount"

            # mountpoint=$(udisksctl mount --no-user-interaction -b $mount)
            # mountpoint=$(echo $mountpoint | cut -d " " -f 4 | tr -d ".")
            gnome-terminal -e "bash -lc 'ranger $mountpoint'" &
        done
        ;;
    --unmount)
        for unmount in $(echo "$devices" | jq -r '.blockdevices[]  | select(.type == "part") | select(.rm == "1") | select(.mountpoint != null) | .name'); do
            udisksctl unmount --no-user-interaction -b "$unmount"
            udisksctl power-off --no-user-interaction -b "$unmount"
        done
        ;;
    *)  
        output=""
        counter=0

        for unmounted in $(echo "$devices" | jq -r '.blockdevices[]  | select(.type == "part") | select(.rm == "1") | select(.mountpoint == null) | .name'); do
            unmounted=$(echo "$unmounted" | tr -d "[:digit:]")
            unmounted=$(echo "$devices" | jq -r '.blockdevices[]  | select(.name == "'"$unmounted"'") | .vendor')
            unmounted=$(echo "$unmounted" | tr -d ' ')

            if [ $counter -eq 0 ]; then
                space=""
            else
                space="   "
            fi
            counter=$((counter + 1))

            output="$output$space#1 $unmounted"
        done

        for mounted in $(echo "$devices" | jq -r '.blockdevices[] | select(.type == "part") | select(.rm == "1") | select(.mountpoint != null) | .size'); do
            if [ $counter -eq 0 ]; then
                space=""
            else
                space="   "
            fi
            counter=$((counter + 1))

            output="$output$space#2 $mounted"
        done

        echo "$output"
        ;;
esac

И не будет , сразу понятно что ты хочешь удалённо чекать диски в режиме гостя если я не ошибаюсь , а я редко ошибаюсь , на кого работаешь трудяга?

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

я хочу использовать скрипт для монтирования флешек

The_Graduate
() автор топика

Если вы скрипт сами писали, то в чём проблема отладить? Втыкайте отладочную печать и смотрите что происходит при выполнении.

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

Запускали при вставленной флешке? Команда lsblk -Jplno NAME,TYPE,RM,SIZE,MOUNTPOINT,VENDOR что выводит?

″jq″ установлен? Скрипт просто в терминале пробовали запускать?

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

jq установлен, вот вывод(команды lsblk -Jplno NAME,TYPE,RM,SIZE,MOUNTPOINT,VENDOR):

{
   "blockdevices": [
      {"name":"/dev/sda", "type":"disk", "rm":false, "size":"223,6G", "mountpoint":null, "vendor":"ATA     "},
      {"name":"/dev/sda1", "type":"part", "rm":false, "size":"512M", "mountpoint":"/boot", "vendor":null},
      {"name":"/dev/sda2", "type":"part", "rm":false, "size":"20G", "mountpoint":"/", "vendor":null},
      {"name":"/dev/sda3", "type":"part", "rm":false, "size":"1G", "mountpoint":"[SWAP]", "vendor":null},
      {"name":"/dev/sda4", "type":"part", "rm":false, "size":"202,1G", "mountpoint":"/home", "vendor":null},
      {"name":"/dev/sdb", "type":"disk", "rm":true, "size":"7,2G", "mountpoint":null, "vendor":"Kingston"},
      {"name":"/dev/sdb1", "type":"part", "rm":true, "size":"7,2G", "mountpoint":null, "vendor":null}
   ]
}
The_Graduate
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.