2016-11-08 6 views
1

У меня есть сценарий bash для загрузки данных с веб-сайта. Для этого мне нужно передать имя пользователя и пароль, используя java-клиент для веб-сайта. У моего пароля есть специальный символ, который вызывает проблемы. Я пробовал обычные решения, но никто не работает.bash: как передать пароль, содержащий специальные символы

#!/bin/sh 
#$ -cwd 

MYPASSWORD='password&123' 

java -jar client.jar -p username $MYPASSWORD file.gz 

Пробовал использовать \ либо непосредственно в команде, либо используя переменную. Но это не сработало. Ошибка входа!

MYPASSWORD=password\&123 
java -jar client.jar -p username $MYPASSWORD file.gz 

Пробовал "или". Ошибка входа.

MYPASSWORD='password&123' 
java -jar client.jar -p username "\"$MYPASSWORD\"" file.gz 

Также попробовал, не повезло. MYPASSWORD = 'password' "&" '123'

Любые предложения были бы наиболее полезными. Сброс пароля на этом веб-сайте также кажется проблематичным.

+1

может попробовать тройную простую цитату ('' ') для включения? – F4240

+1

Можете ли вы использовать эту программу java для загрузки файла без сценария bash? Если программа не работает вне сценария, она не будет работать внутри скрипта. –

+0

Что означает F4240: вы пытались '$ {MYPASSWORD}'? – GhostCat

ответ

2

Просто укажите параметр.

mypassword='password&123' 
java -jar client.jar -p username "$mypassword" file.gz 

Котировки только там, чтобы сохранить оболочку от выполнения любой дальнейшей обработки значения из mypassword после того, как параметр расширяется. Фактически вы не передаете кавычки в свою программу.

+0

Нет, что не работает. Ошибка входа в систему. – user19758

+1

Тогда проблема не в оболочке; вы либо заблуждаетесь в пароле, либо в программном обеспечении Java неправильно понимаете его. – chepner

+0

(Единственный случай, если ваш пароль содержит одну цитату, которая не может быть включена в строку с одним кавычком: 'foo = 'bob'spassword'' не устанавливает' foo' 'bob'spass 'word', но для конкатенации цитируемой строки 'bob' и неупорядоченной строки' spass', а также некорректной строки 'word'). – chepner

 Смежные вопросы

  • Нет связанных вопросов^_^