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

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

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.

  • В чем смысл if ;?
  • Перезаписать определенную строку в файле 2 с содержимым файла 1
  • Скрипт для входа на несколько серверов и выполнения команд и добавления вывода в один файл
  • В то время как проверка состояния JBoss в цикле вниз или нет,
  • Сценарий оболочки не найден
  • Форматирование и отображение интервала с дробными секундами в оболочке
  • Мне нужно передать тот же результат на другой сложный скрипт.

  • Скрипт оболочки Unix, параметры с пробелами
  • В чем смысл $ * в сценарии оболочки?
  • добавить опцию абсолютного пути к команде
  • tr -d не работает с возвратом каретки
  • Помогите мне понять, почему тест $? -eq 0 истинно, даже если я ожидаю, что оно будет ложным
  • Значение «exec env COMMAND»
  • 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 - лучшая ОС в мире.