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

Реализуйте эти внешние ресурсы как монтирования autofs. Это позволит завершить работу fstab, а автомонтирование, пространственная функция ядра -, сможет согласовать создание внешних ссылок по мере необходимости и при их наличии.

Возможно, вам потребуется что-то добавить в ОС, чтобы настроить ее. На

Centos/Redhat: yum install autofs

Ubuntu: apt-get install autofs

Затем следуйте инструкциям вашего дистрибутива для настройки.

Примечание:
Параметр --ghostсохранит «ожидаемый» путь к базовому каталогу на месте монтирования. Некоторым приложениям становится неприятно, если базовый путь монтирования отсутствует, а затем создается на лету.

Кроме того, если монтируемые общие ресурсы Windows защищены от использования SMB 1.0, обязательно используйте аргумент vers=2\.1в строке сопоставления, чтобы указать, что попытка монтирования должна выполняться на SMB 2.1, в противном случае возникнут длительные тайм-ауты и сбои. произойдет монтирование.

0
10.05.2020, 06:23
1 ответ

"${@%\n}"удаляет замыкающий n. "${@%\\n}"удалит конечную\n(литеральную строку, а не новую строку ).

Чтобы удалить символ новой строки, вам нужно передать символ новой строки. В Bash этот синтаксис должен работать:

"${@%$'\n'}"

, где$'\n'отвечает за генерацию фактического символа новой строки.Буквальный перевод строки также будет работать:

"${@%
}"

Примечания:

  • Решение удаляет завершающую новую строку из каждого аргумента, а не только из последнего (, потому что так работает $@).
  • В Linux необычно иметь завершающую новую строку в аргументе командной строки. Я не знаю WSL, я не знаю вашего варианта использования; Надеюсь, вы знаете, чего хотите*.

Пример:

$ set a $'b\n' c
$ printf '<%s>\n' "$@"
<a>
<b
>
<c>
$ printf '<%s>\n' "${@%$'\n'}"
<a>
<b>
<c>
$ printf '<%s>\n' "${@%
}"
<a>
<b>
<c>


*Если «удаление конечного \nиз аргумента» не то, что вы хотите, тогда может быть вы вызываете функцию из источника (? ), и скрипт страдает от строки DOS, заканчивающейся (s ). Проверьте этот вопрос .

3
28.04.2021, 23:15

Теги

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