LINUX.ORG.RU
ФорумAdmin

Помогите доделать bash скрипт

 


0

2

Написать простейший скрипт на Bash, который должен принимать в качестве аргумента любую строку и удалять из /home/ файл с именем, соответствующим переданной строке без необходимости отвечать утвердительно на вопросы системы. Так же должны быть выполнены условия, при которых скрипт не удалит все файлы при передаче в качестве параметра <*> и удалит файлы, имена которых начинаются с <-<.

str1=[a-z]
str2=[A-Z]
str3=[0-9]
#str4=[*]
read -p "Введите имя файла который нужно удалить" file
if [ $file="$str1" ]; then
        rm -- $file
elif [ $file="$str2" ]; then
        rm -- $file
elif [ $file ="$str3" ]; then
        rm -- $file
elif [ $file =~ "*" ]; then
        echo "Мы не можем удалить"
fi



В общем не могу понять как сделать так чтобы файлы не удалялись при вводе символа звездочки.

★★★★★

Последнее исправление: xaizek (всего исправлений: 1)

#!/bin/bash
rm -f -- $HOME/"$1"
Kolins ★★★★
()

bash Как вы на этом пишете, это же жесть. Вам дали божественный Perl, нет, хотим жрать говно

anonymous
()

Тут case напрашивается

anonymous
()
del() { set -o noglob; echo rm "$@"; }

del 1 2
rm 1 2

del 1 2 *
rm 1 2 *
anonymous
()
31 октября 2021 г.

Не знаю как с тобой связаться, помоги пожалуйста

Нашёл на этом форуме твоё сообщение что ты решил проблему с залипанием на геймпаде в nfsu2 , crossove’ом можешь объяснить, если что моё мыло grafvenom@mail.ru

P.s. не мог найти как тут отправить сообщение в ЛС

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

ммм, мсье разбирается в сортах!

anonymous
()

скрипт не удалит все файлы при передаче в качестве параметра <*>

в скрипт не передаётся звёздочка как таковая, при вызове скрипта, bash разыменовывает звёздочеку в список файлов, найденный в текущей ПАПКЕ и передаёт скрипту в качестве позиционных параметров имена этих файлов, если конечно ничего не путаю, поправьте, если напутал

именно папке, а не мамке, а то тут всякие анонимные умники любят уточнять

IvanR ★★★
()
Последнее исправление: IvanR (всего исправлений: 1)

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

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

найденный в текущей ПАПКЕ

Команда смены текущей ДИРЕКТОРИИ - cd, а команды смены ПАПКИ - cf нэма.

именно папке, а не мамке

Вот аще не по месту выпендрились. Папки в гуйне, в консоли их нет. В топике речь про консоль.

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

Сами виноваты, не надо было акцентировать внимание в месте где вы не правы.

да просто бесит, что умники всякие кричат - виндузота

Хотите ради разнообразия могу крикнуть «мальчик гей»? :) Намек на macOS :)

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

ладно, кричите, люди по большей части для своего чсв что-то кричат, в редких случаях для того, чтобы улучшить мир

IvanR ★★★
()
Последнее исправление: IvanR (всего исправлений: 1)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.