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


Увидели сообщение с непонятной ссылкой, спам, непристойность или оскорбление?
Воспользуйтесь ссылкой «Сообщить модератору» рядом с сообщением!

Автор Тема: команды cd и ls из bash файла?  (Прочитано 16240 раз)

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

Оффлайн uazik

  • Автор темы
  • Новичок
  • *
  • Сообщений: 5
    • Просмотр профиля
команды cd и ls из bash файла?
« : 31 Января 2023, 18:52:58 »
Есть скрипт с меню, но пункт 1 не работает как мне нужно, сейчас он просто выводит листинг каталога cht, а нужно чтобы перешел и вывел на экран содержимое cht чтобы можно было работать с файлами. С командой source ./t.sh все работает как надо, но source применять нельзя с ним
. Можно ли сделать что я хочу из bash файла?
#!/bin/bash

folder1="/mnt/gbt/"
file1="t.sh"

cd $folder1
  function pause(){
  read -p "$*"
}
   clear
   echo
   printf "1.""\33[1;43m   TEST    \33[0m\n"
   echo
   printf "2.""\33[1;42m  Lubuntu GUI \33[0m\n"
   echo
   printf "3.""\33[1;45m    Reboot    \33[0m\n"
   echo
   printf "4.""\33[1;46m   Poweroff   \33[0m\n"
   echo
   printf "q.""\33[1;44m     Exit  menu   \33[0m\n"
   echo
   echo $$

   read -p "Please input Number: " gbtm
   case $gbtm in
     "1")
     cd /mnt/gbt/cht/
     clear; ls
      ;;
     "2")
      cd /mnt/gbt
      startx
      ;;
     "3")
      cd /mnt/gbt
      reboot
      ;;
     "4")
      cd /mnt/gbt
      poweroff
      ;;
     "q")
      cd /mnt/gbt
      ;;

     *)
     echo "********** Input error **********"
     pause 'Press [Enter] key to return ..'
     cd $folder1
     ./$file1
     ;;
    esac
« Последнее редактирование: 31 Января 2023, 19:01:46 от uazik »

Оффлайн ALiEN

  • Администратор
  • Старожил
  • *
  • Сообщений: 6691
  • 20% Cooler
    • Просмотр профиля
Re: команды cd и ls из bash файла?
« Ответ #1 : 31 Января 2023, 19:05:25 »
чтобы можно было работать с файлами.
Не понимаю. Поясните, что это значит?
🖥 AsRock B550M Pro4 :: AMD Ryzen 5 3600 :: 16 GB DDR4 :: AMD Radeon RX 6600 :: XFCE
💻 ACER 5750G :: Intel Core i5-2450M :: 6 GB DDR3 :: GeForce GT 630M :: XFCE

Оффлайн uazik

  • Автор темы
  • Новичок
  • *
  • Сообщений: 5
    • Просмотр профиля
Re: команды cd и ls из bash файла?
« Ответ #2 : 31 Января 2023, 19:10:39 »
править, запускать и т.д. а не просто посмотреть содержимое папки.

Оффлайн ALiEN

  • Администратор
  • Старожил
  • *
  • Сообщений: 6691
  • 20% Cooler
    • Просмотр профиля
Re: команды cd и ls из bash файла?
« Ответ #3 : 31 Января 2023, 20:01:21 »
править, запускать и т.д.
Для этого есть консольные файловые менеджеры, например MidnightCommander (mc).
🖥 AsRock B550M Pro4 :: AMD Ryzen 5 3600 :: 16 GB DDR4 :: AMD Radeon RX 6600 :: XFCE
💻 ACER 5750G :: Intel Core i5-2450M :: 6 GB DDR3 :: GeForce GT 630M :: XFCE

Оффлайн uazik

  • Автор темы
  • Новичок
  • *
  • Сообщений: 5
    • Просмотр профиля
Re: команды cd и ls из bash файла?
« Ответ #4 : 31 Января 2023, 20:38:50 »
Вопрос не как работать с файлами, а возможно ли как то из bash попасть в нужную папку и развернуть содержимое в окне терминала.
« Последнее редактирование: 31 Января 2023, 20:40:24 от uazik »

Оффлайн cargan

  • Активист
  • *
  • Сообщений: 488
  • Oderint, dum metuant
    • Просмотр профиля
Re: команды cd и ls из bash файла?
« Ответ #5 : 31 Января 2023, 20:41:59 »
посмотри команду zenity
man zenity

Оффлайн ALiEN

  • Администратор
  • Старожил
  • *
  • Сообщений: 6691
  • 20% Cooler
    • Просмотр профиля
Re: команды cd и ls из bash файла?
« Ответ #6 : 31 Января 2023, 21:04:32 »
из bash попасть в нужную папку и развернуть содержимое в окне терминала.
for file in ./* ; do
    [ -f "$file" ] || continue
    echo "press 1 to view \"$file\""
    echo "press 2 to edit \"$file\""
    echo "press q to exit"
    echo "press anykey to next file"
    read -r i
       case $i in
         1) cat "$file" ;;
         2) nano "$file" ;;
         q) break ;;
         *) continue ;;
       esac
done

🖥 AsRock B550M Pro4 :: AMD Ryzen 5 3600 :: 16 GB DDR4 :: AMD Radeon RX 6600 :: XFCE
💻 ACER 5750G :: Intel Core i5-2450M :: 6 GB DDR3 :: GeForce GT 630M :: XFCE

Оффлайн uazik

  • Автор темы
  • Новичок
  • *
  • Сообщений: 5
    • Просмотр профиля
Re: команды cd и ls из bash файла?
« Ответ #7 : 31 Января 2023, 21:52:46 »
cargan, Спасибо но для меня сложно, я в linux пару недель всего, но попытаюсь понять.

ALiEN175, Спасибо работает, но не то что мне нужно, в вашем варианте я могу только листать по порядку и править, а нужно выбрать нужный мне запустить или отредактировать, а файлов в папке много.  Насколько я понимаю, моя хотелка  аналога команды  cd /foder1/folder2/folder3; clear; ls в данном случае не возможна?

Irshat, Потому что хочется, интересно разобраться и удобно в работе. Меню намного больше чем я показал.

Пользователь добавил сообщение 31 Января 2023, 22:20:19:
cargan, zenity это для gui а я терминале без запуска оболочки.
« Последнее редактирование: 31 Января 2023, 22:20:48 от uazik »

Оффлайн cargan

  • Активист
  • *
  • Сообщений: 488
  • Oderint, dum metuant
    • Просмотр профиля
Re: команды cd и ls из bash файла?
« Ответ #8 : 31 Января 2023, 22:30:55 »
cargan, zenity это для gui а я терминале без запуска оболочки.
Вы просто неправильно используете термин "терминал"
-- если Вы работаете без запуска оболочки, то надо постить - не терминал, а "консоль"

Оффлайн ALiEN

  • Администратор
  • Старожил
  • *
  • Сообщений: 6691
  • 20% Cooler
    • Просмотр профиля
Re: команды cd и ls из bash файла?
« Ответ #9 : 31 Января 2023, 22:37:57 »
zenity это для gui а я терминале без запуска оболочки.
whiptail

нужно выбрать нужный мне запустить или отредактировать, а файлов в папке много.
ну напишите nano и два раза таб нажмите.
Или zsh попробуйте и дело вообще не в скриптах.
(Нажмите, чтобы показать/скрыть)
🖥 AsRock B550M Pro4 :: AMD Ryzen 5 3600 :: 16 GB DDR4 :: AMD Radeon RX 6600 :: XFCE
💻 ACER 5750G :: Intel Core i5-2450M :: 6 GB DDR3 :: GeForce GT 630M :: XFCE

Оффлайн uazik

  • Автор темы
  • Новичок
  • *
  • Сообщений: 5
    • Просмотр профиля
Re: команды cd и ls из bash файла?
« Ответ #10 : 01 Февраля 2023, 15:13:23 »
вот так работает
cd /mnt/gbt/cht/; clear; ls
bash
Костыль, но работает.

 

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