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

257
richard20427176

У меня есть некоторые проблемы с сценарием оболочки, пожалуйста, помогите мне, спасибо.

Я создаю файл сценария оболочки с именем «deploy.sh», и каждый раз, когда я вызываю этот сценарий с параметром, выглядит как «20180208», «20180214» (формат даты yyyyMMdd) ... и т. Д.

# sh deploy.sh 20180208 

Содержание для оболочки, как показано ниже (я написал несколько строк для тестирования, но я столкнулся с проблемой):

#! / Bin / ш  # ОПРЕДЕЛИТЬ UPLOAD_DATE = $ 1 # ВЫХОД SH_LOG = / дом / jin.huang / журналы / execsh.log  Развертывание () { Эхо $ 1 echo $ UPLOAD_DATE } Развертывание >> $ SH_LOG 

Итак, я передал 20180208 в deploy.sh, но получил два результата за 1 доллар:

Эхо $ 1
эхо "$ 1"

они распечатываются на экране;

echo $ UPLOAD_DATE
echo "$ UPLOAD_DATE"

на экране они печатают «20180208».

почему два результата?

1
Если я правильно понял, скрипт `$ 1` - это не та же самая функция` $ 1`. Вы можете передавать параметры для функций внутри скрипта. `Deploy" $ 1 "` передаст скрипт `$ 1` в функцию. Paulo 6 лет назад 0

0 ответов на вопрос