Автор Тема: Помогите подправить скриптик  (Прочитано 2143 раз)

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

Оффлайн tierbbr

  • Новичок форума
  • Topic Author
  • Сообщений: 2
Помогите подправить скриптик
« : 23 Ноябрь 2011, 23:48:30 »
#!/bin/bash
ROOT_DIR=$1
DIR_PERM=$2
FILE_PERM=$3

IFS=$'\n'
for name in $(find ${ROOT_DIR})
do
if [ -d "$name" ]
then
chmod ${DIR_PERM} "$name"
echo "DIRECTORY: '${name}' PERMS CHANGED TO 0x${DIR_PERM}"
else
chmod ${FILE_PERM} "$name"
echo "FILE: '${name}' PERMS CHANGED TO 0x${FILE_PERM}"
fi
done

Не пашет, как быть?
Предыдущий вариант http://www.mczone.ru/relations/num/247/1 спотыкался о пробел и завершал работу, а этот просто пропускает файл\папку с пробелом, выдавая ошибку, вдобавок обрабатывает не все объекты
 

Оффлайн orlyanuch

  • Местный житель
  • ***
  • Сообщений: 212
Re: Помогите подправить скриптик
« Ответ #1 : 24 Ноябрь 2011, 02:55:57 »
У меня всё работает. И файлы, и папки, в именах которых есть пробелы обрабатываются.

Сообщение объединено: 24 Ноябрь 2011, 17:39:28
А запускаешь как суперпользователь?
И выведи ls -lR где не всё обрабатывает.
Spoiler: ShowHide
можно ещё вот этот скриптик попробовать, он тоже работает

#!/bin/bash
ROOT_DIR=$1
DIR_PERM=$2
FILE_PERM=$3
TEMP_FILE=/tmp/file$$

find "$ROOT_DIR" > $TEMP_FILE

while read LINE
do
   if [ -d "$LINE" ]
   then
      chmod $DIR_PERM "$LINE"
      echo "DIRECTORY: '$LINE' PERMS CHANGED TO 0x${DIR_PERM}"
   elif [ -f "$LINE" ]
   then
      chmod $FILE_PERM "$LINE"
      echo "FILE: '$LINE' PERMS CHANGED TO 0x${FILE_PERM}"
   fi
done <$TEMP_FILE
rm $TEMP_FILE
« Последнее редактирование: 24 Ноябрь 2011, 18:13:45 от orlyanuch »
Edimus, ut vivamus; nоn vivimus, ut edamus.
 

Оффлайн tierbbr

  • Новичок форума
  • Topic Author
  • Сообщений: 2
Re: Помогите подправить скриптик
« Ответ #2 : 24 Ноябрь 2011, 19:16:16 »
Решение найдено!


#!/bin/bash
ROOT_DIR=$1
DIR_PERM=$2
FILE_PERM=$3

IFS=$'\n'
for name in $(find ${ROOT_DIR} | sed 's/ /©/g' )
do
name="$(echo $name | sed 's/©/ /g')"
if [ -d "$name" ]
then
chmod ${DIR_PERM} "$name"
echo "DIRECTORY: '${name}' PERMS CHANGED TO 0x${DIR_PERM}"
else
chmod ${FILE_PERM} "$name"
echo "FILE: '${name}' PERMS CHANGED TO 0x${FILE_PERM}"
fi
done
 

Оффлайн orlyanuch

  • Местный житель
  • ***
  • Сообщений: 212
Re: Помогите подправить скриптик
« Ответ #3 : 25 Ноябрь 2011, 02:38:44 »
Странно, почему такие проблемы с пробелами в первых двух скриптах? Вроде всё работает...
Edimus, ut vivamus; nоn vivimus, ut edamus.
 

Оффлайн keekdown

  • Пользователь
  • *
  • Сообщений: 14
Re: Помогите подправить скриптик
« Ответ #4 : 07 Июль 2012, 20:59:37 »
А двойные кавычки и одинарные это же разница?Или я не про то говорю?
 

Оффлайн orlyanuch

  • Местный житель
  • ***
  • Сообщений: 212
Re: Помогите подправить скриптик
« Ответ #5 : 08 Июль 2012, 04:04:12 »
Есть при обращении к переменным, подробнее тут.
Но внутри двойных кавычек одинарные уже не экранируют переменные.
Edimus, ut vivamus; nоn vivimus, ut edamus.
 

Теги:
 

Помогите написать скрипт

Автор MkZ

Ответов: 3
Просмотров: 1896
Последний ответ 23 Январь 2014, 21:46:24
от Malaheenee
Помогите с скриптом

Автор Grig96

Ответов: 6
Просмотров: 1412
Последний ответ 06 Февраль 2017, 23:17:15
от ZEN
Помогите разобраться с Python скриптом

Автор studio2

Ответов: 16
Просмотров: 3498
Последний ответ 29 Январь 2016, 19:00:35
от vic5710
[РЕШЕНО] Помогите склепать скрипт!

Автор }{ronoTrigger

Ответов: 14
Просмотров: 3262
Последний ответ 09 Июнь 2014, 12:49:15
от Alexey_F
Помогите со скриптом!

Автор Ta1fun

Ответов: 15
Просмотров: 2508
Последний ответ 06 Март 2017, 03:49:20
от ogost