Вопрос задан 11.07.2023 в 08:22. Предмет Информатика. Спрашивает Пархомчик Елизавета.

BASH LINUX Помогите кто нибудь с линуксом BASH пожалуйста буду благодарен Написать командный

файл, реализующий меню из трех пунктов, первый пункт – дает возможность пользователю указать название директории, выбрав второй пункт пользователь получает запрос на ввод расширение файла, а затем список всех файлов с заданным расширением в этом каталоге (если они есть, в противном случае сообщения об отсутствии следующих файлов, выбрав третий пункт пользователь получает возможность скопировать эти файлы в отдельный каталог. Название каталога вводится пользователем.
0 0
Перейти к ответам

Ответы на вопрос

Внимание! Ответы на вопросы дают живые люди. Они могут содержать ошибочную информацию, заблуждения, а также ответы могут быть сгенерированы нейросетями. Будьте внимательны. Если вы уверены, что ответ неверный, нажмите кнопку "Пожаловаться" под ответом.
Отвечает Князь Альберт.

Ответ:

#!/bin/bash

a=$true

while ($a)

do

clear

echo "1. Enter path"

echo "2. Enter file extension"

echo "3. Copy file"

echo "4. Exit"

read VAR

clear

if [[ $VAR -eq 1 ]]

then

echo "enter path"

read path

read -p "Нажмите ENTER для продолжения"

fi

if [[ $VAR -eq 2 ]]

then

echo "Enter file extension"

read fex

cd $path

ls *.$fex

read -p "Нажмите ENTER для продолжения"

fi

if [[ $VAR -eq 3 ]]

then

echo "enter path to copy file"

read pathcopy

cp -R $path/*.$fex $pathcopy

read -p "Нажмите ENTER для продолжения"

fi

if [[ $VAR -eq 4 ]]

then

echo "Exit"

read -p "Нажмите ENTER для продолжения"

let "a=false"

fi

done

Объяснение:


0 0
Отвечает нейросеть ChatGpt. Будьте внимательны, ответы нейросети могут содержать ошибочные или выдуманные данные.

Конечно, я могу помочь вам написать командный файл на языке bash, реализующий ваше меню. Вот пример решения:

bash
#!/bin/bash show_menu() { echo "Меню:" echo "1. Указать название директории" echo "2. Вывести список файлов с заданным расширением" echo "3. Скопировать файлы с заданным расширением в отдельный каталог" echo "0. Выход" } get_directory_name() { read -p "Введите название директории: " directory_name echo "Вы указали директорию: $directory_name" } list_files_with_extension() { read -p "Введите расширение файла: " extension files=$(find "$directory_name" -type f -name "*.$extension") if [[ -z $files ]]; then echo "Файлы с расширением .$extension не найдены." else echo "Файлы с расширением .$extension:" echo "$files" fi } copy_files_to_directory() { read -p "Введите название каталога для копирования файлов: " destination_directory if [[ ! -d $destination_directory ]]; then mkdir "$destination_directory" fi cp "$directory_name"/*."$extension" "$destination_directory" echo "Файлы успешно скопированы в каталог $destination_directory" } while true; do show_menu read -p "Выберите пункт меню: " choice case $choice in 1) get_directory_name ;; 2) if [[ -z $directory_name ]]; then echo "Сначала укажите название директории (пункт 1)" else list_files_with_extension fi ;; 3) if [[ -z $directory_name ]]; then echo "Сначала укажите название директории (пункт 1)" elif [[ -z $extension ]]; then echo "Сначала выберите расширение файла (пункт 2)" else copy_files_to_directory fi ;; 0) echo "Выход..." exit 0 ;; *) echo "Неверный выбор. Попробуйте еще раз." ;; esac echo # Пустая строка для разделения между итерациями done

Сохраните этот код в файл с расширением .sh, например, menu.sh. Затем вы можете запустить его в терминале, используя команду bash menu.sh. Программа будет отображать меню с тремя пунктами, и вы сможете выбрать соответствующий пункт и выполнить нужное действие.

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

0 0

Похожие вопросы

Топ вопросов за вчера в категории Информатика

Последние заданные вопросы в категории Информатика

Задать вопрос