Как передать аргумент с пробелами функции сценария оболочки?

Я пытаюсь передать несколько аргументов функции, но один из них состоит из двух слов, и я хочу, чтобы функция оболочки обрабатывала его как один аргумент:

args=("$@") function(){ echo ${args[0]} echo ${args[1]} echo ${args[2]} } 

когда я называю эту команду sh shell hi hello guys bye

Я получаю это

 hi hello guys 

Но я действительно хочу:

 hi hello guys bye 

2 Solutions collect form web for “Как передать аргумент с пробелами функции сценария оболочки?”

Вы должны просто указать второй аргумент.

 myfunc(){ echo "$1" echo "$2" echo "$3" } myfunc hi "hello guys" bye 

Если вы вызываете из любой оболочки Unix, вам нужно процитировать ее.

 sh shell hi "hello guys" bye 

В сценарии нет способа сделать это, так как сценарий не знает, какие пространства есть (какие слова вместе).

  • Получать файлы с сервера SFTP и управлять ими в памяти
  • Проблема при запуске скрипта на хосте после подключения
  • Удаленная SSH-команда выходит из строя только в сценарии оболочки с ошибкой: «Нет такого файла или каталога»
  • Невозможно добавить скрипт в init.d
  • Как удалить привилегии root в сценариях оболочки?
  • «Login -qf», поскольку root приводит к ошибке «Ошибка входа в систему»
  • Сценарий для получения данных из файла csv и выполнения связанных операций в базе данных
  • grep для извлечения подстрок в строке
  • Как узнать, сколько ядер (в том числе эмулированных через HT и т. Д.) Доступны для пользователя?
  • Выполнение почтовой команды внутри функции вызывает «вилку»,
  • Как управлять назначением аргументов
  • Interesting Posts

    Обновление ядра CentOS-5.11

    Как найти find -exec для вызова сценария оболочки?

    Как я могу сортировать список с уровнем major.minor.patch и иногда rc правильно?

    Доступ к переменной индекса массива из цикла сценария оболочки bash?

    Линии и пространства повсюду исчезли

    Поиск PDF-ридера, который обрабатывает большие файлы

    как сделать LVM доступным для загрузки? kernel panic – dracut не может найти логические тома после обновления ядра в CentOS 6.6

    перенаправить системные журналы systemd в файл

    SSH: «Permission denied» после изменения оболочки пользователя

    В Vim, как я могу копировать несколько строк? (не диапазон);

    Логика соответствия шаблону оболочки

    Когда добавление `/` в каталог меняет его значение?

    Удаляет ли rsync файлы в месте назначения, которые были удалены со стороны отправки?

    Как добавить липкий бит в каталог в exFAT?

    Свежая установка Debian. Какие файлы я могу восстановить из резервной копии?

    Linux и Unix - лучшая ОС в мире.