The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]




Версия для распечатки Пред. тема | След. тема
Новые ответы [ Отслеживать ]
bash скрипт для монтирования андроид телефона, !*! Isothiocyanate, 11-Янв-21, 18:53  [смотреть все]
Доброго времени суток.

Учусь потихоньку писать bash скрипты. Сделал вот такой простой скрипт для монтирования Андроид телефона в Debian 10.7, XFCE 4.12.

#!/bin/bash
echo "This script will mount yours Android phone using go-mtpfs."
echo " Firstly install go-mtpfs, MTP protocol, then make dir called AndroidDevice in yours /home/user_name catalog."
echo " Make dir AndroidDevice in yours home catalog? Yes=1 No=2"
read D
if D=1 mkdir ~/AndroidDevice
then
echo "mount point is created."
else
go-mtpfs ~/AndroidDevice &
# Note: If go-mtpfs is not ran in the background (with & at the end), another console will be
# needed to browse the device and unmount the device (when finished).
echo "Device is mounted."
fi
echo "Do you wish to unmount it? Yes=1 No=2"
read B
fusermount -u ~/AndroidDevice
echo " Unmount is Ok."
#When the device is unmount, go-mtpfs will quit.  

Но несмотря на оператор if , скрипт каждый раз упорно пытается создать точку монтирования.
Несмотря на ошибку, вызванную тем что точка существует, скрипт выполняется до конца.
Монтирует телефон, дает возможность переместить файлы в GUI , затем размонтирует.
Вот так:

rost@DEBIAN999:~/Mount_Android_Phone$ ./Android_mount_script
This script will mount yors Android phone using go-mtpfs.
Firstly install go-mtpfs, MTP protocol, then make dir called AndroidDevice in yours /home/user_name catalog.
Make dir AndroidDevice in yours home catalog? Yes=1 No=2
2
mkdir: cannot create directory ‘/home/rost/AndroidDevice’: File exists
Device is mounted.
Do you wish unmount it? Yes=1 No=2
2021/01/11 17:50:14 FUSE mounted
1
Unmount is Ok.
rost@DEBIAN999:~/Mount_Android_Phone$

P.S.:
echo "Do you wish unmount it? Yes=1 No=2"   - по сути без разницы что выбрать - просто дает задержку пока вы копируете с телефона данные - ждет ответа с клавиатуры.
Может заменить на "for unmounting press any key"

  • bash скрипт для монтирования андроид телефона, !*! Isothiocyanate, 18:58 , 11-Янв-21 (1) –1
    Да, прошу прощения за ошибки в английсом - набирал торопясь - то букву потерял то частицы to не хватет

    > #!/bin/bash
    > echo "This script will mount YOURS Android phone using go-mtpfs."

  • bash скрипт для монтирования андроид телефона, !*! DiabloPC, 19:14 , 11-Янв-21 (2)

    ...
    if [ $D = '1' ]
        then
            mkdir ololo
            echo "blablabla"
        else
    ...

    зы
    я что-то вообще не понял что это за извращение. Почему go-mtpfs?

    ззы
    читать от корки до корки:
    https://habr.com/ru/post/471242/

  • bash скрипт для монтирования андроид телефона, !*! Licha Morada, 19:37 , 11-Янв-21 (4) +1
    > Но несмотря на оператор if , скрипт каждый раз упорно пытается
    > создать точку монтирования.

    Оператор if работае не так, как вы ожидаете.
    Он выполняет "D=1 mkdir ~/AndroidDevice" в качестве test condition, т.е. в любом случае. Кроме того, D=1 это не сравнивание а присваивание значения.
    https://tldp.org/LDP/Bash-Beginners-Guide/html/sect_07_01.html

    Правильно было бы
    if [ "$D" = "1" ]; then
      mkdir ~/AndroidDevice
      echo "mount point is created."

    Но всё равно так не надо.

    > mkdir: cannot create directory ‘/home/rost/AndroidDevice’: File exists

    Делайте mkdir -p ~/AndroidDevice, и будет вам щастье.


    Я так понял, вы бoльше хвастаетесь чем жалуетесь.
    На предмет похвастаться, я в своё время отчаялся найти стабильный метод монтирования Андроида по шнурку, и теперь монтирую его по SSH. Без скрипта, одной командой монтирую, другой размонтирую. На телефпне установлен SimpleSSHD с аутентикацией по ключам, детали прописаны в моём ~/.ssh/config

    sshfs -o nonempty android:/storage/emulated/0 /mnt/android
    fusermount -u /mnt/android

    • bash скрипт для монтирования андроид телефона, !*! Isothiocyanate, 20:18 , 11-Янв-21 (5) –1
      > sshfs -o nonempty android:/storage/emulated/0 /mnt/android
      > fusermount -u /mnt/android

      Пока хвастаться нечем - в 2 строчках 3 ошибки

      Спасибо за разбор полетов.
      Мне еще пока не совсем понятна ситуация с проверкой существования директории.

      И если она временная - монтировать в /tmp а потом удалять точку монтирования?


      • bash скрипт для монтирования андроид телефона, !*! Аноним, 01:28 , 12-Янв-21 (7)
        >> sshfs -o nonempty android:/storage/emulated/0 /mnt/android
        >> fusermount -u /mnt/android
        > Пока хвастаться нечем - в 2 строчках 3 ошибки
        > Спасибо за разбор полетов.
        > Мне еще пока не совсем понятна ситуация с проверкой существования директории.
        > И если она временная - монтировать в /tmp а потом удалять точку
        > монтирования?

        man, searching via inet for FHS
        политки, стратегии и тактики использования на десткопах, сервах, мобилах, ембедах разные
        +
        возможны вендор специфик осложнения и прочий насморк


      • bash скрипт для монтирования андроид телефона, !*! Licha Morada, 03:33 , 12-Янв-21 (8) +1

        > Мне еще пока не совсем понятна ситуация с проверкой существования директории.

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

        Если заворачивать в скрипт, то:
        mkdir -p точкамонтирования
        if [ ! -d точкамонтирования ]; then
          обработать ошибку

        Посмотрите в man mkdir на предмет "-p" и man test на предмет "-d".
        Имейте в виду, что в Баше конструкции "if [ условие ]" нет. Есть "if команда", а "[" это на самом деле алиас команды test.

        > И если она временная - монтировать в /tmp а потом удалять точку
        > монтирования?

        Монтируйте туда, где бы этим было удобно пользоваться вам.
        Если вам удобно видеть папку на десктопе, то в ~/Desktop/Android.
        Если когда вы открываете файловый менеджер, у вас первым делом открывается домашняя диретория, то в ~/Android.
        Если у вас настроено, что по пявлению чего-то в /media совершаются какие-то действия или открывается какой-то диалог, то в /media/${USER}/Android.
        Если вы привыкли что всё "внешнее" монтируется в /mnt, то туда.
        В /tmp/Android тоже можно, ИМХО не слишком удобно.
        Прямо в /tmp монтировать не надо.

        Если вы не скачите из системы в систему и нет трбования "прибирать за собой", то я бы точку монтирования не удалял.

      • bash скрипт для монтирования андроид телефона, !*! Isothiocyanate, 20:51 , 12-Янв-21 (10)
        #!/bin/bash
        echo "This script will mount yors Android phone using go-mtpfs."
        echo " Firstly install go-mtpfs, MTP protocol, then make dir called AndroidDevice in yours /home/user_name catalog."
        echo " Make dir AndroidDevice in yours home catalog? Yes=1 No=2"
        read D
        if [[ "D" = "1" ]]  
        then
        mkdir ~/AndroidDevice
        echo "mount point is created."
        else
        go-mtpfs ~/AndroidDevice &
        # Note: If go-mtpfs is not ran in the background (with & at the end), another console will be needed to browse the device and unmount the device (when finished).
        echo "Device is mounted."
        fi
        echo "Do you wish unmount it? Yes=press any key"
        read B
        fusermount -u ~/AndroidDevice
        echo " Unmount is Ok."
        #When the device is unmount, go-mtpfs will quit.

        Теперь работает как надо.
        rost@DEBIAN999:~/Mount_Android_Phone$ ./Android_mount_script2
        This script will mount yors Android phone using go-mtpfs.
        Firstly install go-mtpfs, MTP protocol, then make dir called AndroidDevice in yours /home/user_name catalog.
        Make dir AndroidDevice in yours home catalog? Yes=1 No=2
        2
        Device is mounted.
        Do you wish unmount it? Yes=press any key
        2021/01/12 19:47:27 FUSE mounted
        l
        Unmount is Ok.
        rost@DEBIAN999:~/Mount_Android_Phone$

        Позже я попробую сделать автомтическую проверку на наличие директории монтирования и создании таковой если ее нет.

        Хотя нет, мне же надо сравнить числа а не строки:

        #!/bin/bash
        echo "This script will mount yors Android phone using go-mtpfs."
        echo " Firstly install go-mtpfs, MTP protocol, then make dir called AndroidDevice in yours /home/user_name catalog."
        echo " Make dir AndroidDevice in yours home catalog? Yes=1 No=2"
        read D
        if [[ "$D" -eq 1 ]]  
        then
        mkdir ~/AndroidDevice
        echo "mount point is created."
        else
        go-mtpfs ~/AndroidDevice &
        # Note: If go-mtpfs is not ran in the background (with & at the end), another console will be needed to browse the device and unmount the device (when finished).
        echo "Device is mounted."
        fi
        echo "Do you wish unmount it? Yes=press any key"
        read B
        fusermount -u ~/AndroidDevice
        echo " Unmount is Ok."
        #When the device is unmount, go-mtpfs will quit.

        Выхлоп:
        rost@DEBIAN999:~/Mount_Android_Phone$ ./Android_mount_script2
        This script will mount yors Android phone using go-mtpfs.
        Firstly install go-mtpfs, MTP protocol, then make dir called AndroidDevice in yours /home/user_name catalog.
        Make dir AndroidDevice in yours home catalog? Yes=1 No=2
        2
        Device is mounted.
        Do you wish unmount it? Yes=press any key
        2021/01/12 19:55:18 FUSE mounted
        f
        Unmount is Ok.
        rost@DEBIAN999:~/Mount_Android_Phone$ ./Android_mount_script2
        This script will mount yors Android phone using go-mtpfs.
        Firstly install go-mtpfs, MTP protocol, then make dir called AndroidDevice in yours /home/user_name catalog.
        Make dir AndroidDevice in yours home catalog? Yes=1 No=2
        1
        mkdir: cannot create directory ‘/home/rost/AndroidDevice’: File exists
        mount point is created.
        Do you wish unmount it? Yes=press any key
        e
        fusermount: entry for /home/rost/AndroidDevice not found in /etc/mtab
        Unmount is Ok.
        rost@DEBIAN999:~/Mount_Android_Phone$

        • bash скрипт для монтирования андроид телефона, !*! DiabloPC, 23:30 , 14-Янв-21 (11)
          > echo " Firstly install go-mtpfs, MTP protocol, then make dir called AndroidDevice
          > in yours /home/user_name catalog."

          Зачем каждый раз это выводить?
          Делаем проверку наличия go-mtpfs - если его нету выводим сообщение и прерываем работу скрипта:

          ...
          IsGomtpfsPresent=$(which go-mtpfs &>/dev/null; echo $?)
          if ! [ "$IsGomtpfsPresent" == '0' ]
              then
                  echo -e "Go-mtpfs not installed. \nPlease, install it for use this script"
                  exit 1
          fi
          ...

          > echo " Make dir AndroidDevice in yours home catalog? Yes 1/No 2"
          > read D
          > if [[ "$D" -eq 1 ]]
          > then
          > mkdir ~/AndroidDevice
          > echo "mount point is created."
          > else
          > go-mtpfs ~/AndroidDevice &

          А здесь вообще ничерта не понял:
          в таком варианте, после создания каталога оно ничерта не смонтирует, т.к. монтирование в противоположном условии:

          Если [[ответ=="да]]
              создать каталог
          если ответ равен любому другому значению
              выполнить монтирование.

          Правильно будет вот так:

          ...
          echo 'Make dir AndroidDevice in your home catalog? [Y]es/[N]o'
          read ANS
          if [[ $ANS == "Y" || $ANS = "y" || $ANS == "Yes" || $ANS == "yes" ]]
              then
                  mkdir $HOME/AndroidDevice
          fi

          go-mtpfs bla-bla-bla
          ...


          • bash скрипт для монтирования андроид телефона, !*! DiabloPC_пробегал, 00:40 , 15-Янв-21 (12)
            А еще правильнее вот так:
            ...
            if ! [ -d $HOME/AndroidDevice ]
                echo 'Make dir AndroidDevice in your home catalog? [Y]es/[N]o'
                read ANS
                if [[ $ANS == "Y" || $ANS == "y" || $ANS == "Yes" || $ANS == "yes" ]]
                    then
                        mkdir $HOME/AndroidDevice
                    else
                        echo -e "Mount point does not exist. \nCan't Mount. "
                        exit 2
                fi
            fi
            go-mtpfs bla-bla-bla
            ...


            • bash скрипт для монтирования андроид телефона, !*! Isothiocyanate, 15:26 , 15-Янв-21 (13)
              Спасибо, перепишу его.


            • bash скрипт для монтирования андроид телефона, !*! Isothiocyanate, 16:55 , 15-Янв-21 (14)

              >     if [[ $ANS == "Y" || $ANS ==
              > "y" || $ANS == "Yes" || $ANS == "yes" ]]
              >         then

              DiabloPC, а где ты взял эту конструкцию с == ?        

              • bash скрипт для монтирования андроид телефона, !*! DiabloPC_пробегал, 19:47 , 15-Янв-21 (15)
                >>     if [[ $ANS == "Y" || $ANS ==
                >> "y" || $ANS == "Yes" || $ANS == "yes" ]]
                >>         then
                > DiabloPC, а где ты взял эту конструкцию с == ?

                Просто написал от руки.  
                || это логическое (ИЛИ)

                • bash скрипт для монтирования андроид телефона, !*! Isothiocyanate, 23:51 , 15-Янв-21 (16)
                  #!/bin/bash
                  echo "This script will mount yors Android phone using go-mtpfs."
                  echo " Firstly install go-mtpfs, MTP protocol, then make dir called AndroidDevice in yours /home/user_name catalog."
                  IsGomtpfsPresent=$(which go-mtpfs &>/dev/null; echo $?)
                  if ! [ "$IsGomtpfsPresent" == '0' ]
                      then
                          echo -e "Go-mtpfs not installed. Please, install it for use this script"
                          exit 1
                  fi

                  if [ -d $HOME/AndroidDevice ]
                      then
                      ANS=A
                      echo "Mount point exist."
                      else
                      echo "Make dir AndroidDevice in your home catalog? [Y]es/[N]o"
                      read ANS
                  fi
                      
                  if [[ $ANS == "Y" || $ANS == "y" || $ANS == "Yes" || $ANS == "yes" ]]
                          then
                              mkdir $HOME/AndroidDevice
                              echo "Mount point is created."
                  fi

                  if [[ $ANS == "N" || $ANS == "n" || $ANS == "No" || $ANS == "no" ]]
                          then
                              echo -e "We do not create mount point."
                          exit 2
                  fi

                  go-mtpfs ~/AndroidDevice &
                  # Note: If go-mtpfs is not ran in the background (with & at the end), another console will be needed to browse the device and unmount the device (when finished).
                  echo "Device is mounted."
                  echo "Do you wish unmount it? Yes=press Y key"
                  read B
                  fusermount -u ~/AndroidDevice
                  echo " Unmount is Ok."
                  # When the device is unmount, go-mtpfs will quit.
                  exit 3

                  Как-то так.

                  • bash скрипт для монтирования андроид телефона, !*! Isothiocyanate, 23:52 , 15-Янв-21 (17)
                    rost@DEBIAN999:~/Mount_Android_Phone$ ./Android_mount_script4
                    This script will mount yors Android phone using go-mtpfs.
                    Firstly install go-mtpfs, MTP protocol, then make dir called AndroidDevice in yours /home/user_name catalog.
                    Mount point exist.
                    Device is mounted.
                    Do you wish unmount it? Yes=press Y key
                    2021/01/15 22:45:12 FUSE mounted
                    y
                    Unmount is Ok.
                    rost@DEBIAN999:~/Mount_Android_Phone$ ./Android_mount_script4
                    This script will mount yors Android phone using go-mtpfs.
                    Firstly install go-mtpfs, MTP protocol, then make dir called AndroidDevice in yours /home/user_name catalog.
                    Make dir AndroidDevice in your home catalog? [Y]es/[N]o
                    y
                    Mount point is created.
                    Device is mounted.
                    Do you wish unmount it? Yes=press Y key
                    2021/01/15 22:45:55 FUSE mounted
                    y
                    Unmount is Ok.
                    rost@DEBIAN999:~/Mount_Android_Phone$ ./Android_mount_script4
                    This script will mount yors Android phone using go-mtpfs.
                    Firstly install go-mtpfs, MTP protocol, then make dir called AndroidDevice in yours /home/user_name catalog.
                    Mount point exist.
                    Device is mounted.
                    Do you wish unmount it? Yes=press Y key
                    2021/01/15 22:46:24 FUSE mounted
                    y
                    Unmount is Ok.
                    rost@DEBIAN999:~/Mount_Android_Phone$ ./Android_mount_script4
                    This script will mount yors Android phone using go-mtpfs.
                    Firstly install go-mtpfs, MTP protocol, then make dir called AndroidDevice in yours /home/user_name catalog.
                    Make dir AndroidDevice in your home catalog? [Y]es/[N]o
                    n
                    We do not create mount point.
                    rost@DEBIAN999:~/Mount_Android_Phone$
                    rost@DEBIAN999:~/Mount_Android_Phone$ ./Android_mount_script4
                    This script will mount yors Android phone using go-mtpfs.
                    Firstly install go-mtpfs, MTP protocol, then make dir called AndroidDevice in yours /home/user_name catalog.
                    Go-mtpfs not installed. Please, install it for use this script
                    rost@DEBIAN999:~/Mount_Android_Phone$
                  • bash скрипт для монтирования андроид телефона, !*! DiabloPC, 04:01 , 16-Янв-21 (18)
                    #!/bin/bash

                    echo -e "This script will mount your Android phone using go-mtpfs.\n\n"
                    echo "First install go-mtpfs, MTP protocol, then make dir called AndroidDevice in your /home/user_name catalog." ## Учитуя наличие следующих шести строк, которые выведут предупреждение, если это потребуется, эта строка ненужна.
                    IsGomtpfsPresent=$(which go-mtpfs &>/dev/null; echo $?)
                    if ! [ "$IsGomtpfsPresent" == '0' ]
                        then
                            echo -e "Go-mtpfs not installed. Please, install it for use this script"
                            exit 1
                    fi

                    if [ -d $HOME/AndroidDevice ]
                        then
                            ANS=A  ## Не вкурил: что это?? Зачем?
                            echo "Mount point exist."
                        else
                            echo "Make dir AndroidDevice in your home catalog? [Y]es/[N]o"
                            read ANS
                    fi
                        
                    ## следующие две проверки условий нелогично выносить из предыдущей конструкции if-then-else, т.к. если выполнилось условие предыдущей проверки то они не нужны вообще.
                    ## if [[ $ANS == "Y" || $ANS == "y" || $ANS == "Yes" || $ANS == "yes" ]]
                    ##     then
                    ##         mkdir $HOME/AndroidDevice
                    ##         echo "Mount point is created."
                    ## fi
                    ##
                    ## if [[ $ANS == "N" || $ANS == "n" || $ANS == "No" || $ANS == "no" ]]
                    ##     then
                    ##         echo -e "We do not create mount point."
                    ##         exit 2
                    ## fi

                    ## Получаем вот такое:

                    if [ -d $HOME/AndroidDevice ]
                        then
                            ANS=A  ## Не вкурил: что это?? Зачем?
                            echo "Mount point exist."
                        else
                            echo "Make dir AndroidDevice in your home catalog? [Y]es/[N]o"
                            read ANS
                            if [[ $ANS == "Y" || $ANS == "y" || $ANS == "Yes" || $ANS == "yes" ]]
                                then
                                    mkdir $HOME/AndroidDevice
                                    echo "Mount point is created."
                            fi

                            if [[ $ANS == "N" || $ANS == "n" || $ANS == "No" || $ANS == "no" ]]
                                then
                                    echo -e "We do not create mount point."
                                    exit 2
                            fi
                    fi

                    go-mtpfs ~/AndroidDevice &
                    # Note: If go-mtpfs is not ran in the background (with & at the end), another console will be needed to browse the device and unmount the device (when finished).
                    echo "Device is mounted."
                    echo "Do you wish unmount it? Yes=press Y key" ## Нелогично, т.к. нажав N оно всеравно отмонтируется. Соответственно либо просто писать "Press any key to unmount…", либо делать обработку ввода как с созданием точки монтирования.
                    read B
                    fusermount -u ~/AndroidDevice

                    ## echo "Unmount is Ok." ## А точно ли ОК?? СтОит, все-же, проверить код завершения предыдущей комманды

                    if [ $(echo $?) != "0" ]
                        then
                            echo "Unmount failed"
                            exit 3
                    fi

                    echo "Unmount is Ok."
                    exit 3 ## Не "exit 3", а "exit 0", т.к. это нормальное завершение работы. Нулевой код завершения означает правильное завершение, любой НЕнулевой - ошибку в выполнении.


                    • bash скрипт для монтирования андроид телефона, !*! Isothiocyanate, 11:18 , 16-Янв-21 (20)

                      > if [ -d $HOME/AndroidDevice ]
                      >     then
                      >   ANS=A  ## Не вкурил: что это?? Зачем?
                      >   echo "Mount point exist."
                      >     else
                      >   echo "Make dir AndroidDevice in your home catalog? [Y]es/[N]o"
                      >   read ANS
                      > fi

                      Если ANS не присвоить значение отличное от Y/N - программа входит в цикл и выходит на выход exit2.

                      >[оверквотинг удален]
                      >     mkdir $HOME/AndroidDevice
                      >     echo "Mount point is created."
                      >   fi
                      >   if [[ $ANS == "N" || $ANS == "n" ||
                      > $ANS == "No" || $ANS == "no" ]]
                      >    then
                      >     echo -e "We do not create mount point."
                      >     exit 2
                      >   fi
                      > fi

                      У меня тоже был вначале вложенный цикл. Но программа нормально не выполняла вложенный цикл, поэтому пришлось разбить на 2 отдельных.

                      >[оверквотинг удален]
                      > # Note: If go-mtpfs is not ran in the background (with &
                      > at the end), another console will be needed to browse the
                      > device and unmount the device (when finished).
                      > echo "Device is mounted."
                      > echo "Do you wish unmount it? Yes=press Y key" ## Нелогично, т.к.
                      > нажав N оно всеравно отмонтируется. Соответственно либо просто писать "Press any
                      > key to unmount…", либо делать обработку ввода как с созданием точки
                      > монтирования.
                      > read B
                      > fusermount -u ~/AndroidDevice

                      А это стоит добавить.

                      >[оверквотинг удален]
                      > if [ $(echo $?) != "0" ]
                      >  then
                      >   echo "Unmount failed"
                      >   exit 3
                      > fi
                      > echo "Unmount is Ok."
                      > exit 3 ## Не "exit 3", а "exit 0", т.к. это нормальное
                      > завершение работы. Нулевой код завершения означает правильное завершение, любой НЕнулевой
                      > - ошибку в выполнении.
                      >

                      • bash скрипт для монтирования андроид телефона, !*! DiabloPC_пробегал, 11:40 , 16-Янв-21 (21)

                        > Если ANS не присвоить значение отличное от Y/N - программа входит в
                        > цикл и выходит на выход exit2.
                        > У меня тоже был вначале вложенный цикл. Но программа нормально не выполняла
                        > вложенный цикл, поэтому пришлось разбить на 2 отдельных.

                        По обеим пунктам: НЕ ВЕРЮ!!!
                        Что первое, что второе может не работать, либо вылететь в ошибки только при наличии ошибок или очепяток в самом скрипте. Но в таком случае нужно не добавлять несколько лишних и естественно нелогичных действий в код, а искать свои косяки.

                        • bash скрипт для монтирования андроид телефона, !*! Isothiocyanate, 18:42 , 16-Янв-21 (22)
                          > По обеим пунктам: НЕ ВЕРЮ!!!
                          > Что первое, что второе может не работать, либо вылететь в ошибки только
                          > при наличии ошибок или очепяток в самом скрипте. Но в таком
                          > случае нужно не добавлять несколько лишних и естественно нелогичных действий в
                          > код, а искать свои косяки.

                          Я думаю там могли быть какие-то ошибки, вызванные моим незнанием bash, которые я самостоятельно не смог устранить, поэтому переписал весь скрипт через одно место, лишь бы работало и выложил на форум то что вышло в итоге.

                          Возможно, если бы я сохранил вариант с воложенным циклом, ты бы смог найти там ошибку, которую в упор не видел я. В принцмпе, bash ругался на fi большего внешнего цикла и на конец программы, на последнюю строку тоже.

                          Я правильно понял что знак ! равносилен then ?

                        • bash скрипт для монтирования андроид телефона, !*! DiabloPC_пробегал, 02:17 , 17-Янв-21 (24)
                          > Я правильно понял что знак ! равносилен then ?

                          Нет, не правильно.
                          "!" это отрицание, т.е логическое НЕ

                          ## если каталог существует
                          if [ -d /path/to/dir ]

                          ## если каталог НЕ существует
                          if ! [ -d /path/to/dir ]

                          А ошибки могут быть настолько примитивные, что аж смешно: я вот ту конструкцию с несколькими условиями когда проверял сам прибалдел:  вроде же примитивная хрень, а материлось, как оказалось я умудрился пропустить пробел перед закрывающей скобкой и при этом еще и в упор это не мог разглядеть 😂😂

                  • bash скрипт для монтирования андроид телефона, !*! DiabloPC_пробегал, 04:20 , 16-Янв-21 (19)
                    По поводу вот этих двух строк, если делать без обработки ввода

                    > echo "Do you wish unmount it? Yes=press Y key"
                    > read B

                    Это можно сделать вот так:

                    read -n 1 -r -s -p $'Press any key to unmount...\n'




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру