Перейти к содержимому

baph

Members
  • Публикации

    2
  • Зарегистрирован

  • Посещение

    Никогда
  1. Сначала тоже пришел к: ls -1 ~/test/ | while read i ; do mkdir -p "~/test/${i}/done" done Так как не смог придумать, как подавить лишний в моем случае вывод ls, использовал следующий вариант: for D in ~/test/*; do [ -d "$D" ] && mkdir -p "${D}/done"; done Замечание об утилите в начале моего сообщения, похоже, было лишнее.
  2. Здравствуйте. Пытаюсь написать скрипт, который создаст в текущей папке папки с именами, полученными от какой-либо утилиты (в данном случае - ls): $ ls -1 ~/test abcd dcba test1 test1 test2 test1 test2 test3 , содержащие папку done. Написал следующий скрипт: for i in $(ls -1 ~/test) ; do echo ${i} if [ -d ~/test/$i ] ; then echo "making ${i}/done dir" mkdir -p ${i}/done fi done Пока не смог понять, как обрабатывать в цикле имена, содержащие пробелы. Если выполнить for i in $(ls -1 ~/test) ; do echo ${i}; done abcd dcba test1 test1 test2 test1 test2 test3 Т.е., как я понял, баш интерпретирует пробелы в именах как разделители переменных. Если выполнить $ for i in "$(ls -1 ~/test)" ; do #добавил кавычки echo ${i}; done abcd dcba test1 test1 test2 test1 test2 test3 $ echo "${i}" abcd dcba test1 test1 test2 test1 test2 test3 т.е. переменной i один раз присваивается вывод ls -1 ~/test, и выполнение $ mkdir -p ${i}/done приводит к $ find -maxdepth 2 | sort . ./abcd ./catalogue ./config ./dcba ./test1 ./test2 ./test3 ./test3/done Попробовал добавлять кавычки к именам папок: DIRS=$(ls -1 ~/test | sed -r 's|^(.*)$|\"\1\"|g') ; for i in ${DIRS} ; do echo "${i}" ; done "abcd" "dcba" "test1" "test1 test2" "test1 test2 test3" Не работает. Поможите, люди добрые!!
×