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


Автор Тема: простой bash скрипт sed и подстановка  (Прочитано 942 раз)

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

Оффлайн Kozak Illya

  • Автор темы
  • Любитель
  • *
  • Сообщений: 62
    • Просмотр профиля
простой bash скрипт sed и подстановка
« : 03 Октябрь 2013, 16:32:40 »
Хотелки:
есть каталог ~/.encrypted
который содержит зашифрованные одним паролем подкаталоги например ~/.encrypted/Documents
нужен скрипт который будет спрашивать пароль и расшифровывать все каталоги из ~/.encrypted/ в ~/ сохраняя их названия.
Сделал топором:
#!/bin/bash
echo "Enter password: "
read -s PASSWORD
echo $PASSWORD | encfs -S ~/.encrypted/Documents/ ~/Documents/
echo $PASSWORD | encfs -S ...и так далее
Пробую цикл:
#!/bin/bash
FILES=~/.encrypted/*
echo "Enter password: "
read -s PASSWORD
for f in $FILES
do
echo $PASSWORD | encfs -S $f {а здесь у меня заминка}
done
думаю что нужно пройтись по $f с помощью sed 's/.encrypted\///' но не знаю как подставить результат
« Последнее редактирование: 03 Октябрь 2013, 16:43:29 от Kozak Illya »

Оффлайн ArcFi

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 15189
    • Просмотр профиля
    • aetera.net
Re: простой bash скрипт sed и подстановка
« Ответ #1 : 03 Октябрь 2013, 16:54:27 »
Код: (bash) [Выделить]
#!/bin/bash

#PASSWD="passwd"
ENCFS="$HOME/.encrypted"

read -s PASSWD
cd "$ENCFS"
ls | while read DIR
do
    echo "$PASSWD" | encfs -S "$ENCFS/$DIR" "$HOME/$DIR"
done

exit 0

Оффлайн Kozak Illya

  • Автор темы
  • Любитель
  • *
  • Сообщений: 62
    • Просмотр профиля
Re: простой bash скрипт sed и подстановка
« Ответ #2 : 03 Октябрь 2013, 17:41:09 »
Спасибо.
К ls добавил опцию -d */ и сделал так:
#!/bin/bash
     
echo "Enter password: "
read -s PASSWD

ENCFS="$HOME/.encrypted"
     
cd "$ENCFS"
ls -d */| while read DIR
do
echo "$PASSWD" | encfs -S "$ENCFS/$DIR" "$HOME/$DIR"
done
exit 0
Только зачем "$PASSWD" брать в кавычки?
Как расскрасить bash код как это сделал ArcFi?

Кому интересно, чтобы присвоить результат sed переменной, нужно сделать так:
tf=$(sed 's/.encrypted\///' <<< $f)

Оффлайн ArcFi

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 15189
    • Просмотр профиля
    • aetera.net
Re: простой bash скрипт sed и подстановка
« Ответ #3 : 03 Октябрь 2013, 18:04:05 »
Только зачем "$PASSWD" брать в кавычки?
Экранирование всех переменных можно считать правилом хорошего тона.

Как расскрасить bash код
[ code=bash ] [ /code ]

Оффлайн Kozak Illya

  • Автор темы
  • Любитель
  • *
  • Сообщений: 62
    • Просмотр профиля
Re: простой bash скрипт sed и подстановка
« Ответ #4 : 03 Октябрь 2013, 18:13:09 »
Спасибо ArcFi за помощь!

 

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