Попросив свой сценарий принять аргументы, содержащие пробелы

Из-за этой проблемы я действительно застрял на своих сценариях. Мне нужен мой скрипт, чтобы принимать аргументы и давать результат, но поскольку у меня есть пробелы, он отображает только первое слово. например.

cat open.sh echo My name is $1 export start=`date +"%b %d %k:%M:%S %Y"` [oracle@spiderman scripts]echo $start Jul 01 3:03:18 2016 [oracle@spiderman scripts]$sh open.sh `echo $start` The time is Jul 

Мне нужен выход, так как The time is Jul 01 3:03:18 2016.

Мне нужно передать тот же результат на другой сложный скрипт.

  • tr -d не работает с возвратом каретки
  • Как выполнить команду внутри сценария оболочки без открытия новой оболочки
  • Инкремент оглядывается назад в файле конфигурации ежедневно +1
  • Для вывода weird
  • Портативный способ настройки исполняемого файла, вызванного скриптом
  • Изменение формата даты и добавление к исходному файлу
  • Начальный сценарий
  • Если условие как один вкладыш
  • One Solution collect form web for “Попросив свой сценарий принять аргументы, содержащие пробелы”

    Вы должны использовать подстановку команд $() вокруг date например,

     export start=$(date +"%b %d %k:%M:%S %Y") export end=$(date +"%b %d %k:%M:%S %Y") 

    и измените open.sh с

     echo The time is "$1" and end time is "$2" 

    (Примечание. Всегда указывайте свою переменную, см. Это )

    и запустите свой скрипт с указанным аргументом, подобным этому,

     $ sh open.sh "$start" "$end" The time is Jul 01 20:24:03 2016 and end time is Jul 01 22:19:25 2016 
    Linux и Unix - лучшая ОС в мире.