#linux #bash
Подскажите как можно передать строку параметром для bash скрипта. Сам скрипт: #!/bin/bash convert -font helvetica -fill white -pointsize 16 -draw 'text 10,50 "'$1'"' /var/www/img/display.jpg /var/www/img/comment.jpg Пробовал вызвать так: # ./display.sh "проверка текста" И так: # ./display.sh проверка\ текста Скрипт воспринимает текст как два параметра, хочу разобраться как можно сделать, чтобы понимал как один параметр.
Ответы
Ответ 1
Bash переменные вставляет всегда как один параметр внутри двойных кавычек и разбивает по пробелам если кавычек нет. У вас $1 стоит вне кавычек. Нужно написать так: convert -font helvetica -fill white -pointsize 16 -draw 'text 10,50 "'"$1"'"' /var/www/img/display.jpg /var/www/img/comment.jpgОтвет 2
в одинарных кавычках должно работать: ba.sh 'one two' в двойных кавычках: ba.sh "one two" экранировать каждый пробел: ba.sh один\ два Тестовый bash скрипт: #!/bin/bash echo "Input: $1" Результаты тестов: # ./ba.sh One Two Input: One # ./ba.sh 'One Two' Input: One Two # ./ba.sh "One Two" Input: One Two # ./ba.sh One\ Two Input: One Two Ответ писал на первоначальную версию вопроса, потом не следил за обновлениями. Сам по себе ответ, может, кому-то пригодится. Но на поставленный вопрос он уже не отвечает.
Комментариев нет:
Отправить комментарий