Запретить скрипту Вставка пробела в имя файла

Ulrich Drepper, сопровождающий glibc, отказался от поддержки bcrypt, поскольку она не одобрена NIST. См. подробности в статье bcrypt поддерживает пароли в /etc/shadow

И его статью на домашней странице Unix crypt with SHA-256/512

1
26.04.2019, 17:59
3 ответа

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

  1. Расширение параметров
    Если вы вызовете параметр таким образом, он удалит все пробелы:"${ATTACH_FILE// /}"
$ ATTACH_FILE='/home/example_path/example_file_name_ 1.xls'
$ echo "${ATTACH_FILE// /}"
/home/example_path/example_file_name_1.xls 
ATTACH_FILE="${ATTACH_FILE// /}"
  1. Использованиеtr
    Вы можете использовать trдля удаления пробелов
ATTACH_FILE=$(echo "$ATTACH_FILE" | tr -d ' ')
  1. Использованиеsed
    Вы также можете использовать sedдля удаления пробелов
ATTACH_FILE=$(echo "$ATTACH_FILE" | sed 's/ //g')
-1
28.01.2020, 00:13

Судя по комментариям @RomeoNinov -, это была проблема с размером строки. Ответ состоял в том, чтобы добавить

 linesize 300 

перед выполнением запроса sqlplus.

0
28.01.2020, 00:13

Чтобы избежать переноса строки/слова, вы можете установить большую ширину вывода, например 300 символов:

set linesize 300

Также для определенного столбца вы можете определить определенный формат, например:

column file_name format a50

(50 буквенно-цифровых символов)

1
28.01.2020, 00:13

Теги

Похожие вопросы