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


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

Автор Тема: Подскажите новичку - скрипт для оболочки BASH  (Прочитано 3664 раз)

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

Оффлайн 73

  • Автор темы
  • Новичок
  • *
  • Сообщений: 29
    • Просмотр профиля
1)   Подскажите, пожалуйста, как обрабатывать файлы в скрипте BASH, если имена этих файлов состоят из нескольких слов и содержат в себе пробелы. Файлов может и не быть в указанном месте.
Например, файл(ы) называе(ю)тся
   Скрипт для создания директории на диске.sh,
   Скрипт для создания файлов на диске.sh
            и. т.п.
При выполнении скрипта
#!/bin/bash
cd $HOME
zraz=' Скрипт для создания*.sh'

if [ `ls $zraz | wc -l` -gt 0 ]   
    then
    echo 'УРЯЯЯ'
    else
    echo 'НЕЕЕЕЕЕТ'
fi

появляется ругань когда нет файлов «Скрипт для создания*.sh»
ls: cannot access Скрипт\: No such file or directory
ls: cannot access для\: No such file or directory
ls: cannot access создания*.sh: No such file or directory


2) Какой командой  (find, locate, ls), лучше производить поиск и вывод файлов для дальнейшей обработки в скрипте, чтобы можно с помощью переменных или других команд указать место поиска, образец для поиска и другие параметры?
Например, если известно, что файлы должны находиться в определенной директории и имеют что-то общее в имени или содержимом.
Если есть где-то примеры, пожалуйста, подскажите.

3) Какой командой можно узнать позицию искомого символа (подстроки) в строке с начала или с конца строки, а также длину строки (кол-во символов)?

4) Как можно создать командой mkdir папку, которая содержит пробелы в имени (состоит из нескольких слов) ?
Команда
 d='fi\ se'; mkdir $d
создает 2 папки.
Как, вообще, можно обрабатывать папки имена которых состоят из нескольких слов (разделены пробелами)? Например, папки типа «папка с картинками_files», которые создает веб-броузер для веб-страниц на диске.

5) Какая команда позволяет дописывать (добавлять) в новую строку текстового файла данные в скрипте? Например есть цикл, проходит 10 итераций  и в один и тот же текстовый файл дописывается в новую строку значение строчной переменной, т.е. будет всего 10 строк.

Оффлайн aliftin

  • Старожил
  • *
  • Сообщений: 1398
    • Просмотр профиля
В начале скрипта добавьте это:
IFS=$'\n'Это решит проблему с пробелами в названии файлов.

Создание папок с именами, содержащими пробел:
name_folder="this name folder"
mkdir "$name_folder"

Добавить текст в конец файла:
echo "text" >> ./text_file

Файлы можно искать любым способом, все зависит от задачи. Можно рекурсивно с помощью ls, а можно и все файлы с помощью find найти.
« Последнее редактирование: 05 Марта 2011, 13:57:54 от aliftin »
Если мы не можем до чего то дотянуться, мы виним в этом не свой рост, не отсутствие табуретки, а свою цель.

 

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