Страницы

Поиск по вопросам

воскресенье, 12 января 2020 г.

Как в скрипт на bash через консоль передать строку параметром?

#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 Ответ писал на первоначальную версию вопроса, потом не следил за обновлениями. Сам по себе ответ, может, кому-то пригодится. Но на поставленный вопрос он уже не отвечает.

Комментариев нет:

Отправить комментарий