Перейти к содержанию

Вопрос о строке символов в командной строке


Рекомендуемые сообщения

Проблема тупая:

есть программка, которая, как и все остальные, принимает аргументы из командной строки. Пример использования такой:

$mp3tool write -a 'some_string' ./file.mp3

Эта утилка меняет метаданные в mp3 файле. Когда я так пишу, всё зашибись. Всё зашибись и тогда, когда в строке символов есть пробелы. Можно написать без кавычек, но тогда надо экранировать пробел, вот так:

$mp3tool write -a some\ string ./file.mp3

Всё здорово до того момента, когда надо исполнять эту канитель в командном файле, фрагмент для примера:

NAME='aaa bbb'

mp3tool write -a $NAME ./file.mp3

И вот тут эта гадина начинает возбухать, что файл 'bbb' не найден. Типа, думает, что пробел отделяет опцию. Пробовал и с экранированием, и добавлением в саму переменную кавычек - один хрен не пашет. Обойти использование переменных нельзя, то есть, строка символов не статическая, меняется по мере развития событий.

Есть дельные советы ? Если есть, то помогите, плиз. Кстати, проблема не в этой конкретно утилке - lame, например, тоже себя так-же ведёт.

Спасибо

Ссылка на комментарий
Поделиться на другие сайты

Вот он, скрипт:

#!/bin/sh

cp /mnt/smb/Apocaliptica/From_Out_Of_Nowhere.mp3 ./temp.mp3

NAME='"gggg rrrr"'

mp3tool write -a $NAME ./temp.mp3

И вот результат:

Error opening file: rrrr

Короче, в командной строке работает на "ура", так не пашет наотрез !!

Ссылка на комментарий
Поделиться на другие сайты

Ну зачем же так мучиться? Если в значении переменной содержатся пробелы, значит в скрипте само имя переменной необходимо взять в кавычки, вот так:

#!/bin/sh

cp /mnt/smb/Apocaliptica/From_Out_Of_Nowhere.mp3 ./temp.mp3

NAME="gggg rrrr"

mp3tool write -a "$NAME" ./temp.mp3

Попробуйте, это просто обязано работать.

Ссылка на комментарий
Поделиться на другие сайты

  • 2 недели спустя...

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

Загрузка...
×
×
  • Создать...