Поместите $str
в двойные кавычки!
Тест -n требует, чтобы строка была заключена в кавычки внутри тестовых скобок. Использование строки без кавычек с помощью ! -z или даже просто строку без кавычек в тестовых скобках (см. пример 7-6) обычно работает, однако это небезопасная практика. Всегда заключайте проверяемую строку в кавычки. Другие операторы сравнения
curl -v --пользователь 'имя пользователя :пароль' --загрузить -файл {путь}/{binaire} {ваш _URL}/{binaire}
Когда вы загружаете файл с помощью метода POST и опции --form (-F ), curl использует тип содержимого данных multipart/form -:
POST /test.html HTTP/1.1
Host: example.org
Content-Type: multipart/form-data;boundary="boundary"
--boundary
Content-Disposition: form-data; name="field1"
value1
--boundary
Content-Disposition: form-data; name="field2"; filename="example.txt"
value2
--boundary--
Как видите, место для имени файла есть. Но когда вы используете --загрузить -файл (-T ), curl будет использовать метод PUT и такого места не будет, потому что тело запроса будет состоять только из одного тела файла:
PUT /test.html HTTP/1.1
Host: example.org
file content
Единственное имя файла здесь находится в самом URL :test.html