(Баш): Туш келди санды түзүү буйругу

Кээде айрым скрипттерди программалап жатабыз Баш …. жана бизге (кандайдыр бир себептерден улам) кандайдыр бир кокустук санды жаратуу керек.

Ал үчүн сиз колдонмону (же функцияны ...) толугу менен программалай аласыз, бирок ... кызыгы, биздин система буга чейин эле жасап койгон 😀

Терминалда төмөнкүнү терип, басыңыз [Кирүү]:

echo $ RANDOM

... бир сан пайда болот, алар ошол эле нерсени дагы бир жолу жасашат жана дагы бир сан пайда болот ж.б.у.с.

Бул эмне, сизге 0 жана 32768 ортосунда кокустук санды (каалаган) көрсөтөт (бүтүн сан, башкача айтканда, үтүрсүз).

Эгер сизге кокустук сан болушу керек болсо, бирок 0 менен ... 100 дей турган болсок, ал чектөөнү койсоңуз болот 😀

echo $ (($ RANDOM% 100))

Ошол эле, дагы бир мисал ... эгер сиз 0 менен 29дун ортосундагы сан болушун кааласаңыз:

echo $ (($ RANDOM% 29))

Бул түшүнүксүзбү? 😀

Эгер алар аны баш скриптинде колдонушса, анда өзгөрүлмөгө түзүлгөн маани (туш келди сан) ыйгарылат:

VARIABLE = "echo $ (($ RANDOM))"

Мейли, ушул, мен сен жөнүндө билбейм ... бирок мен үчүн качандыр бир кезде пайдалуу болорун билем хахаха.

Урматтоо менен


Макаланын мазмуну биздин принциптерге карманат редакциялык этика. Ката жөнүндө кабарлоо үчүн чыкылдатыңыз бул жерде.

9 комментарий, өзүңүздүкүн калтырыңыз

Комментарий калтырыңыз

Сиздин электрондук почта дареги жарыяланбайт. Милдеттүү талаалар менен белгиленет *

*

*

  1. Маалыматтар үчүн жооптуу: Мигель Анхель Гатан
  2. Маалыматтын максаты: СПАМды көзөмөлдөө, комментарийлерди башкаруу.
  3. Мыйзамдуулук: Сиздин макулдугуңуз
  4. Маалыматтарды берүү: Маалыматтар үчүнчү жактарга юридикалык милдеттенмелерден тышкары билдирилбейт.
  5. Маалыматтарды сактоо: Occentus Networks (ЕС) тарабынан уюштурулган маалыматтар базасы
  6. Укуктар: Каалаган убакта маалыматыңызды чектеп, калыбына келтирип жана жок кыла аласыз.

  1.   Оскар ал мындай деди:

    Мен аны сынап көрдүм, ал 4 орундуу гана цифраны берет, аны кантип чоңойтууга болот?
    Абдан кызыктуу кеңеш, рахмат.

    1.    KZKG ^ Gaara ал мындай деди:

      0 менен 32768 ортосундагы санды кайтарат, мен чоңураак сандарды ала алган жокмун.

  2.   Жашыя ал мындай деди:

    жана ал exadecimals жарата алабы ????

  3.   карга ал мындай деди:

    VARIABLE = "echo $ (($ RANDOM))"

    Бул иштейт, бирок оптималдуу эмес, анткени RANDOM өзгөрмөлүү деп жөнөкөй себеп менен жасай аласыз:
    өзгөрүлмө = $ RANDOM
    жана болду! aprte терминалында echo иштетпеңиз (эмне кылып жатасыз)

    1.    KZKG ^ Gaara ал мындай деди:

      Ооба, албетте, буга жетүүгө болот ... бир гана айырмачылыгы - кийинчерээк, ал өзгөрмө алган санды билүү үчүн (колдонуучу божомолчу болбогондуктан), жаңырык жасаш керек болот .... Акыр-аягы, мен бул жерде эмне кылсам, башынан эле жаңырык жаса (колдонуучу кандай номер алынганын көрөт).

      Мен өзүмдү түшүнүктүү кылып жатамбы? 🙂

  4.   Wuilmer bolivar ал мындай деди:

    Кокустан санды жаратуунун дагы бир жолу, бирок бул жолу бул буйрук болмок:

    дата "+% N" | кесүү -c 9

    Бул бизге датаны 9 орундуу наносекундаларда берет. Эгерде биз бир гана фигураны кааласак, анда "кесилген -c 9" деген белгини койосуз (акыркы сан ар дайым кокустук болот, анткени ал сандын эң кичинеси). Эгерде биз 2 фигура келсе, анда "cut - c 8,9" коебуз. Эгерде биз үч фигураны кааласак, анда "c-7 9-XNUMX" (биз дефис колдоно баштайбыз).

    Бул жерде бирден-бир жаман нерсе, биз кыска убакыттын ичинде көптөгөн кокустук сандарды алууну кааласак, анткени бул анын убактысы менен датага негизделген туш келди сан. Башкача айтканда, эгер биз ушул буйрук менен for жасасак, анда төмөнкүнү көрө алабыз:

    $ i үчүн "1-регион 1 500"; do date "+% N"; жасалды

    ...
    ...
    ...

    308311367
    310807595
    313273093
    315725181
    318186139
    320671403
    323360117
    325733353
    328335462
    330694870
    333259893
    335858999
    338375622
    340798446

    ...
    ...
    ...

    Менин оюмча, бул түшүнүктүүбү? Албетте, сол жактагы сандар кыска убакыт аралыгында көбүрөөк окшош, ал эми оң жактагылар "туш келди".

  5.   Кара көз ал мындай деди:

    ммм…. Мага жакты, мини сценарийим бар, кокус сандарды жаратуу үчүн боёлгон, рахмат.

  6.   G. ал мындай деди:

    Бул кызмат кылат .. жана көп ..
    айрыкча, сиз интерфейсти bash программасында пароль, коопсуздук ж.б.у.с. менен программалап жатсаңыз, хаха.
    Мыкты апрот.

  7.   Хосе Антонио Бенттин артынан жөнөдү ал мындай деди:

    Hello.
    Биринчиден, албетте, көптөн бери байкап келе жаткан ушул мыкты сайт менен куттуктайм.
    Экинчиден, бул жазууга кичинекей эскертүү жасаңыз:
    Чектөө мындай жасалат:

    echo $ (($ RANDOM% 10))

    Чындыгында, сиз котормочуга буйрук берген нерсе, сиз жараткан сан ар дайым кийинки сандын% модулу (бөлүүнүн калдыгы) болот, бул мисалда, 10.
    10го бөлүнгөн ар кандай сан эч качан бөлгүчтүн өзүнөн чоңураак нерсе бербейт.
    Маселе, ал дагы бирдей санды бербейт, анткени 0го бөлүү котормочу үчүн логикалуу эмес.

    Бул echo $ (($ RANDOM% 10) 0 жана 9 ортосунда жыйынтык берет, бирок эч качан 10 болбойт дегенди билдирет.
    Бул чыр-чатакты чечүү жолу - чектөөңүзгө бирөөнү кошуу, ошону менен бир эле сан кокустук диапазонго кириши керек.

    echo $ (($ RANDOM% 11))

    Бул 0 жана 10 ортосунда жыйынтыктарды берет.

    А салам.