Столкнулся с проблемой обработки в шелл-скриптах русских букв. Например, надо скриптом создать каталог с названием "Васина папочка".
На самом деле, захотел я написать скрипт монтирования сетевых ресурсов своего районного провайдера (кино смотрю с сетевых дисков). А у него, злыдня, сетевые ресурсы по русски обозваны, что противоречит всяческим устоявшимся правилам (пионеры ,kz).
Сначала я написал скрипт такой:
#!/bin/sh -e
# -*- coding: windows-1251 -*-
mount //SERV/Архив\ DVD\$ /mnt/serv.dvd -t cifs -o user=login,iocharset=utf8,password=$password
и после выполнения понял, локаль у меня ru_RU.UTF-8 а скрипт в кодировке cp1251. Короче, не буду тянуть, после серии экспериментов нарисовался такой скрипт:
#!/bin/sh -e
# -*- coding: windows-1251 -*-
echo "Enter serv\login password:"
read password
mkdir -p /mnt/serv.dvd
mkdir -p /mnt/serv.dvd2
file="Архив"
nfile=`iconv -f cp1251 -t utf8 <<<"$file"`
mount //serv/$nfile\ DVD\$ /mnt/serv.dvd -t cifs -o user=login,iocharset=utf8,password=$password
mount //serv/$nfile\ DVD1\$ /mnt/serv.dvd2 -t cifs -o user=login,iocharset=utf8,password=$password
И в таком виде оно работает вполне себе.
Комментариев нет:
Отправить комментарий