ബാഷ്: നിബന്ധനകൾ (if-then-else)

ഹലോ

കണ്ടീഷൻ ഉള്ള ഒരു സ്ക്രിപ്റ്റ് എങ്ങനെ നിർമ്മിക്കാമെന്ന് ഈ സമയം ഞാൻ കാണിച്ചുതരാം ബാഷ്, ഇത് വിവർത്തനം ചെയ്തത്:

നിങ്ങൾ‌ക്കാവശ്യമുള്ള എക്സ് കാര്യം ചെയ്താൽ‌, Y പ്രവർ‌ത്തനം നടക്കുന്നു, അത് ചെയ്തില്ലെങ്കിൽ‌ മറ്റൊരു പ്രവർ‌ത്തനം നടത്തുന്നു.

ലളിതമായ വിശദീകരണം ഇല്ല

ഇപ്പോൾ, ഈ ട്യൂട്ടോറിയലിൽ ഉപയോഗിക്കാൻ കുറച്ച് ഉദാഹരണങ്ങൾ ഞാൻ ചിന്തിച്ചിട്ടുണ്ട്, ഇനിപ്പറയുന്ന പ്രതിസന്ധി / പ്രശ്നം / സാഹചര്യം എനിക്ക് സംഭവിച്ചു:

ഞങ്ങൾ ഞങ്ങളുടെ കമ്പനിയുടെ നെറ്റ്‌വർക്കിലാണ്, കൂടാതെ എക്സ് കമ്പ്യൂട്ടർ നെറ്റ്‌വർക്കിലേക്ക് ബന്ധിപ്പിച്ചിട്ടുണ്ടോ എന്നറിയാൻ ഞങ്ങൾ ആഗ്രഹിക്കുന്നു. ഇതിനായി ഞങ്ങൾ ഒരു സ്ക്രിപ്റ്റ് അവൻ എന്തു ചെയ്യും പിംഗ് ആ കമ്പ്യൂട്ടറിലേക്ക്, അത് ഒരു നെറ്റ്‌വർക്കിലാണെങ്കിൽ (അതായത്, അത് നൽകുന്നുവെങ്കിൽ പിംഗ്) അതെ, അത് നെറ്റ്‌വർക്കിലാണെന്ന് ഞങ്ങളോട് പറയും, അല്ലാത്തപക്ഷം (അതായത്, ഇത് നെറ്റ്‌വർക്കിലില്ല) ഇത് നെറ്റ്‌വർക്കിൽ ഇല്ലെന്ന് അത് നമ്മോട് പറയും.

ഇത് ചെയ്‌തുകഴിഞ്ഞാൽ, വ്യവസ്ഥകളുമായി എങ്ങനെ സൈക്കിൾ ചെയ്യാമെന്ന് ഇപ്പോൾ ഞാൻ വിശദീകരിക്കും

കോഡ് ഇതാ:

ping -c 1 DIRECCION-IP
if [ $? -ne 0 ]; then
echo "No está en red"
else
echo "Sí está en red"
fi

വിഷമിക്കേണ്ട, ഞാൻ ഇത് വിശദമായി വിശദീകരിക്കും

പിംഗ് ഞങ്ങൾ ഉപയോഗിക്കുന്ന കമാൻഡ് ആണ്, ആ പിസി നെറ്റ്‌വർക്കിലുണ്ടോ എന്ന് അത് നമ്മോട് പറയും. ഏത് പിസി നെറ്റ്വർക്കിലാണോ അല്ലയോ എന്ന് പരിശോധിക്കാൻ ഞങ്ങൾ ആഗ്രഹിക്കുന്നുവെന്ന് പറയാൻ, ഞങ്ങൾ മാറണം IP ADRESS ഞങ്ങൾ‌ പരിശോധിക്കാൻ‌ താൽ‌പ്പര്യപ്പെടുന്ന പി‌സിയുടെ ഐ‌പി വിലാസം.

നിങ്ങൾക്ക് കാണാനാകുന്നതുപോലെ, ഞാൻ put ഇട്ടു-സി 1«, ഇത് ഞങ്ങൾക്ക് ആവശ്യമാണ്. ഞങ്ങൾ‌ ഒരു കമ്പ്യൂട്ടർ‌ പിംഗ് ചെയ്യുമ്പോൾ‌, ഞങ്ങൾ‌ സ്വയം അമർ‌ത്തുന്നതുവരെ ഈ പ്രവർ‌ത്തനം (പിംഗ്) നിർ‌ത്തുന്നില്ല [Ctrl] + [C], അതിനാൽ «-സി 1Ver ഒരു സ്ഥിരീകരണം (ഒരു പിംഗ് ശ്രമം മാത്രം) മാത്രമേ ചെയ്യാൻ ഞങ്ങൾ ഇത് പറയുന്നുള്ളൂ, മറ്റൊന്നില്ല, ഇത് തൽക്ഷണം നിർത്താൻ ഇടയാക്കും, അതായത്… കമ്പ്യൂട്ടർ ഒരു തവണ മാത്രമേ നെറ്റ്‌വർക്കിൽ ഉണ്ടോ എന്ന് ഇത് പരിശോധിക്കും.

നിങ്ങൾക്ക് ഇതിനെക്കുറിച്ച് സംശയമുണ്ടെങ്കിൽ, വേദനയില്ല ... അവർ അങ്ങനെ പറയുന്നു, അത് വീണ്ടും വിശദീകരിക്കുന്നതിൽ ഞാൻ സന്തുഷ്ടനാകും

ഇപ്പോൾ സൈക്കിൾ വരുന്നു, കാരണം ഞാൻ ഇപ്പോൾ വിശദീകരിച്ചത് ഒരു സാധാരണ കമാൻഡ് / ആക്ഷൻ അല്ലാതെ മറ്റൊന്നുമല്ല

if [ $? -ne 0 ]; then
echo "No está en red"
else
echo "Sí está en red"
fi

നിങ്ങൾ ഇത് മനസിലാക്കുന്നതിനായി, ബാഷിന്റെ വളരെ പ്രധാനപ്പെട്ട ഒരു വിശദാംശം ഞാൻ വിശദീകരിക്കും

ഈ വിഷയത്തെക്കുറിച്ച് ഏറ്റവും അറിവുള്ളവർ എന്നെ തെറ്റോ അതുപോലെയോ മുദ്രകുത്താം, പക്ഷേ ഹേയ്, ഞാൻ ഇത് പുതിയ അല്ലെങ്കിൽ കുറഞ്ഞ വിദഗ്ദ്ധർക്കായി എഴുതുന്നു, അവർ മനസ്സിലാക്കുന്നിടത്തോളം കാലം മികച്ചത്

അത് സംഭവിക്കുന്നത് പോലെ തന്നെ ബാഷ് ഇത് പോലെയാണ് 0 y 1അതായത്, ഒന്നുകിൽ നിങ്ങൾ ജീവിച്ചിരിപ്പുണ്ട് അല്ലെങ്കിൽ നിങ്ങൾ മരിച്ചു, ഒരു കമാൻഡ് അല്ലെങ്കിൽ പ്രവൃത്തി നടപ്പിലാക്കുമ്പോൾ: ഒന്നുകിൽ നന്നായി നടപ്പിലാക്കി പ്രശ്നമില്ല (1), അഥവാ ചിലത് ഉണ്ടായിരുന്നു പ്രശ്നം അല്ലെങ്കിൽ പിശക് (0).

ഞങ്ങൾ എക്സ് ആക്ഷനോ കമാൻഡോ നിർവ്വഹിക്കുന്നു, ഞങ്ങൾ ചെയ്തത് നന്നായി അല്ലെങ്കിൽ മോശമായി ചെയ്തിരിക്കാം, അതിന് ഒരു പിശക് സംഭവിച്ചിരിക്കാം അല്ലെങ്കിൽ ഇല്ല, ഇവിടെയാണ് വിശദാംശങ്ങൾ

ചെയ്യാൻ ഞങ്ങൾ അയച്ചാൽ (ഈ സാഹചര്യത്തിൽ: ping -c 1 IP-ADDRESS) ഒരു പിശക് നൽകിയിട്ടില്ല, അത് വിജയകരമായിരുന്നു, അതിനാൽ ഇത് മൂല്യം നൽകും: 1 . അല്ലെങ്കിൽ, പ്രവർത്തനം (അതായത്, പിംഗ്) വിജയിച്ചില്ലെങ്കിൽ, അത് മൂല്യം നൽകും 0.

 അവസാനമായി, മുകളിലുള്ള കോഡിന്റെ അർത്ഥം ഇതാണ്:

മൂല്യം 0 തിരികെ നൽകിയിരുന്നുവെങ്കിൽ

വാചകം പ്രദർശിപ്പിക്കുക: «നെറ്റ്‌വർക്കിലല്ല»

അല്ലെങ്കിൽ (കൂടാതെ 0 നൽകരുത്, പക്ഷേ 1)

വാചകം പ്രദർശിപ്പിക്കുക: «ഇത് നെറ്റ്‌വർക്കിലാണെങ്കിൽ«

ഇത് ഞാൻ നിങ്ങളോട് വിശദീകരിച്ചത്, ഭാവിയിൽ പല കാര്യങ്ങളിലും ഞങ്ങളെ സേവിക്കും, കാരണം എക്സ് പ്രവർത്തനം ഒരു പിശക് നൽകിയിട്ടുണ്ടെങ്കിൽ, Y പ്രവർത്തനം നടത്തുക, എക്സ് പ്രവർത്തനം നൽകിയിട്ടില്ലെങ്കിൽ എന്ന് പറയാൻ കഴിയുന്നത് ശരിക്കും ഉപയോഗപ്രദമാണ്. പിശക്, Z പ്രവർത്തനം അനുവദിക്കുക.

ചിലത് അൽപ്പം ആശയക്കുഴപ്പത്തിലാകുമെന്ന് എനിക്കറിയാം, അതിനാൽ ഞാൻ ഇത് പലവിധത്തിൽ വിശദീകരിക്കാൻ ശ്രമിച്ചു, എല്ലാവരേയും ഒരു തരത്തിൽ അല്ലെങ്കിൽ മറ്റൊരു രീതിയിൽ മനസ്സിലാക്കാൻ ശ്രമിക്കുന്നു. ആരെങ്കിലും സംശയം തോന്നിയാൽ എന്നെ അറിയിക്കൂ.

ഇപ്പോൾ നമുക്ക് നമ്മുടെ സ്ക്രിപ്റ്റ് നിർമ്മിക്കാം

ഈ ട്യൂട്ടോറിയലിലെ ഘട്ടങ്ങൾ ഞങ്ങൾ പാലിക്കണം: ബാഷ്: എക്സിക്യൂട്ടബിൾ സ്ക്രിപ്റ്റ് എങ്ങനെ നിർമ്മിക്കാം

ഇനിപ്പറയുന്ന കോഡ് ആ ഫയലിലേക്ക് പകർത്താം (script.sh), അവസാനം നമുക്ക് പറയാം «പുറത്ത്»(ഉദ്ധരണികൾ ഇല്ലാതെ):

ping -c 1 DIRECCION-IP
if [ $? -ne 0 ]; then
echo "No está en red"
else
echo "Sí está en red"
fi

ഇത് ഇതുപോലെയായിരിക്കണം (അവർ IP-ADDRESS നെ അവർ ആഗ്രഹിക്കുന്ന IP ലേക്ക് മാറ്റിയിരിക്കണം എന്ന് ഓർമ്മിക്കുക):

പ്രവർത്തിക്കുന്ന സ്ക്രിപ്റ്റ് ഇവിടെ കാണാം:

% CODE1%

 

നിങ്ങൾക്ക് കാണാനാകുന്നതുപോലെ, അവസാനം അവൻ നമ്മോട് പറയുന്നു «അതെ ഇത് നെറ്റ്‌വർക്കിലാണ്»

ഇവിടെയുള്ള പ്രധാന കാര്യം, അവർ ഇത് യഥാർത്ഥത്തിൽ മനസിലാക്കുന്നു എന്നതാണ്, അതിനാൽ ഇത് വീണ്ടും വിശദീകരിക്കാൻ ഞാൻ നിങ്ങൾക്ക് മറ്റൊരു കോഡ് ഇടുന്നു, പക്ഷേ മറ്റൊരു കാഴ്ചപ്പാടിൽ നിന്ന്.

read "texto"
if [ "$texto" = "3" ]; then
echo "Correcto"
else
echo "Incorrecto"
fi

ഇതിന്റെ അർത്ഥം ലളിതമാണ്, ഞാൻ വിശദീകരണ രേഖ വരിവരിയായി വിടുന്നു:

ആദ്യ വരി: നമ്മൾ എഴുതുന്നത്, അത് വേരിയബിളിന്റെ മൂല്യം ആയിരിക്കും «ടെക്സ്റ്റിംഗും»(ഉദ്ധരണികൾ ഇല്ലാതെ).

രണ്ടാമത്തെ വരി: വേരിയബിളിന്റെ ഉള്ളടക്കം (ഞങ്ങൾ ഇപ്പോൾ എഴുതിയത്) പരിശോധിക്കുക 3.

ആദ്യ വരി: ആണെങ്കിൽ 3, ഇത് വാചകം കാണിക്കും «Correcto»(ഉദ്ധരണികൾ ഇല്ലാതെ).

നാലാമത്തെ വരി: അല്ലെങ്കിൽ (അതായത്, ഞങ്ങൾ 3 എഴുതിയിട്ടില്ലെങ്കിൽ).

നാലാമത്തെ വരി: ഇത് വാചകം കാണിക്കും «തെറ്റായ»(ഉദ്ധരണികൾ ഇല്ലാതെ).

നാലാമത്തെ വരി: അവസ്ഥയുടെ അവസാനം.

ഞങ്ങൾ ഇട്ടാൽ അവർക്ക് മനസ്സിലാക്കാൻ കഴിഞ്ഞതുപോലെ എക്കോ തുടർന്ന് ഇരട്ട ഉദ്ധരണികൾക്കിടയിൽ («) ഒരു വാചകം, ഇത് ടെർമിനലിൽ ആ വാചകം പ്രദർശിപ്പിക്കുന്നതിന് കാരണമാകും. അതായത്, ഞങ്ങൾ ഇട്ടാൽ:

echo "esto es una prueba"

ഇത് ടെർമിനലിലെ വാചകം കാണിക്കും: ഇതൊരു പരീക്ഷണമാണ്

എന്നാൽ ഈ രണ്ടാമത്തെ ഉദാഹരണത്തിലേക്ക് മടങ്ങുമ്പോൾ, ഈ രണ്ടാമത്തെ സ്ക്രിപ്റ്റിന്റെ ഉപയോഗക്ഷമത (എക്സിക്യൂഷൻ) വളരെ ലളിതമായ എന്തെങ്കിലും ഉപയോഗിച്ച് ഞാൻ കാണിക്കും 😀… സാധാരണ «1 + 2 എത്രയാണ്?«

പൂർണ്ണമായ സ്ക്രിപ്റ്റിന്റെ കോഡ് ഞാൻ നിങ്ങൾക്ക് വിടുന്നു:

#!/bin/bash
# -*- ENCODING: UTF-8 -*-
echo "¿Cuánto es 1 + 2?"
read "texto"
if [ "$texto" = "3" ]; then
echo "Correcto"
else
echo "Incorrecto"
fi
exit

സ്ക്രിപ്റ്റ് എങ്ങനെ പ്രവർത്തിക്കുന്നുവെന്ന് ഇതാ:

% CODE2%

 

നന്നായി ... കൂടുതൽ ഒന്നും ചേർക്കാനില്ല.

ഇത് പ്രാഥമികവും ലളിതവുമാണ്, പക്ഷേ ഇപ്പോഴും ഞാൻ അത് വിശദീകരിക്കാൻ ശ്രമിച്ചു, കാരണം എല്ലാവർക്കും ഒരു പ്രോഗ്രാമറുടെ ആത്മാവില്ല, മാത്രമല്ല പലതവണ ഇതുപോലുള്ള (അല്ലെങ്കിൽ സമാനമായ) സ്ക്രിപ്റ്റുകൾ നിർമ്മിക്കേണ്ടതുണ്ട്, ഏത് സാഹചര്യത്തിലും ഞാൻ ഈ ലേഖനം നിങ്ങൾക്ക് ആർക്കെങ്കിലും ഉപകാരപ്പെടുമെന്ന് പ്രതീക്ഷിക്കുന്നു

എന്തെങ്കിലും സംശയമോ ചോദ്യമോ പരാതിയോ നിർദ്ദേശമോ ദയവായി ഇവിടെ ഉപേക്ഷിക്കുക, ഞാൻ സന്തോഷത്തോടെ നിങ്ങൾക്ക് ഉത്തരം നൽകും, അതിനാൽ നാമെല്ലാവരും കുറച്ചുകൂടി പഠിക്കുന്നു

നന്ദി!


ലേഖനത്തിന്റെ ഉള്ളടക്കം ഞങ്ങളുടെ തത്ത്വങ്ങൾ പാലിക്കുന്നു എഡിറ്റോറിയൽ എത്തിക്സ്. ഒരു പിശക് റിപ്പോർട്ടുചെയ്യാൻ ക്ലിക്കുചെയ്യുക ഇവിടെ.

26 അഭിപ്രായങ്ങൾ, നിങ്ങളുടേത് വിടുക

നിങ്ങളുടെ അഭിപ്രായം ഇടുക

നിങ്ങളുടെ ഇമെയിൽ വിലാസം പ്രസിദ്ധീകരിച്ചു ചെയ്യില്ല.

*

*

  1. ഡാറ്റയുടെ ഉത്തരവാദിത്തം: മിഗുവൽ ഏഞ്ചൽ ഗാറ്റൻ
  2. ഡാറ്റയുടെ ഉദ്ദേശ്യം: സ്പാം നിയന്ത്രിക്കുക, അഭിപ്രായ മാനേജുമെന്റ്.
  3. നിയമസാധുത: നിങ്ങളുടെ സമ്മതം
  4. ഡാറ്റയുടെ ആശയവിനിമയം: നിയമപരമായ ബാധ്യതയല്ലാതെ ഡാറ്റ മൂന്നാം കക്ഷികളുമായി ആശയവിനിമയം നടത്തുകയില്ല.
  5. ഡാറ്റ സംഭരണം: ഒസെന്റസ് നെറ്റ്‌വർക്കുകൾ (ഇയു) ഹോസ്റ്റുചെയ്യുന്ന ഡാറ്റാബേസ്
  6. അവകാശങ്ങൾ: ഏത് സമയത്തും നിങ്ങളുടെ വിവരങ്ങൾ പരിമിതപ്പെടുത്താനും വീണ്ടെടുക്കാനും ഇല്ലാതാക്കാനും കഴിയും.

  1.   Ha ാൽസ് പറഞ്ഞു

    നിങ്ങൾ ഒരു പ്രോ !!! *അഥവാ*

    1.    KZKG ^ Gaara പറഞ്ഞു

      ഒന്നിനും വേണ്ട
      ഇത് നിങ്ങളെ സേവിക്കുകയും അത് രസകരമാവുകയും ചെയ്താൽ, ഞാൻ സംതൃപ്തനാണ്

      ആശംസകൾ സുഹൃത്ത്

  2.   ശരിയാണ് പറഞ്ഞു

    @ KZKG ^ ഗാര,
    ബാഷ് പ്രോഗ്രാമിംഗിനെക്കുറിച്ച് സംസാരിക്കുമ്പോൾ എനിക്ക് ഒരു ചോദ്യമുണ്ട്:
    ഈ VAR = ഹലോ പോലുള്ള ഒരു വേരിയബിൾ പ്രഖ്യാപിക്കുകയും ഈ VAR = {AR VAR: -ഹലോ like എന്ന് പ്രഖ്യാപിക്കുകയും ചെയ്യുന്നതിലെ വ്യത്യാസമെന്താണ്?

    ഞാൻ വിശദീകരിക്കുന്നു:
    http://pastebin.com/a3cfWXeD

    ആശംസകൾ

    1.    KZKG ^ Gaara പറഞ്ഞു

      ഹലോ
      ശരി, ഞാൻ ബാഷ് വിദഗ്ദ്ധനല്ല ... യഥാർത്ഥത്തിൽ, എനിക്ക് LOL അറിയില്ല !!
      ഞാൻ വേരിയബിളുകൾ പ്രഖ്യാപിക്കുമ്പോൾ ഇത് ഇപ്രകാരമാണ്:
      : ${OPTFOLDER:="/opt/"}

      എന്നാൽ ഞാൻ എല്ലായ്‌പ്പോഴും ഇതുപോലെയാണ്‌ ചെയ്‌തതുകൊണ്ട്, സത്യസന്ധമായി എന്താണ് വ്യത്യാസം എന്ന് എനിക്കറിയില്ല

  3.   ശരിയാണ് പറഞ്ഞു

    @ KZKG ^ ഗാര
    ശരി, ഞാൻ ചോദ്യം ചോദിച്ചു, കാരണം എനിക്കറിയില്ലായിരുന്നു എന്നതാണ് സത്യം, ഞാൻ സാധാരണയായി സ്ലാക്ക് ബിൽഡ്സ് എഴുതുന്നു, കൂടാതെ VAR1 ൽ പ്രഖ്യാപിച്ച വേരിയബിളുകൾ ഈ സ്ക്രിപ്റ്റുകളിൽ പെരുകുന്നു എന്നതാണ് സത്യം. ഈ ചോദ്യം വ്യക്തമാക്കാൻ ഒരു ദ്രുത ഗൂഗിൾ തിരയൽ എന്നെ സഹായിച്ചു, എല്ലാവരുമായും ഞാൻ ഇത് പങ്കിടുന്നതിനാൽ എല്ലാവർക്കും പഠിക്കാൻ കഴിയും:

    സ്ക്രിപ്റ്റ്:
    http://pastebin.com/faAQb35w

    വിശദീകരണം:
    VAR = {AR VAR: -default_value form ഫോമിന്റെ വേരിയബിളുകൾ പ്രഖ്യാപിക്കുന്നത് അർത്ഥമാക്കുന്നത് മൂല്യം അസാധുവാണെങ്കിൽ അല്ലെങ്കിൽ നിലവിലില്ലെങ്കിൽ മാത്രമേ വേരിയബിൾ VAR സ്ഥിരസ്ഥിതി_മൂല്യത്തെ എടുക്കുകയുള്ളൂ.

    പ്രായോഗിക ഉദാഹരണം:
    സ്ക്രിപ്റ്റ് എക്സിക്യൂട്ട് ചെയ്യുമ്പോൾ, വേരിയബിൾ VAR ൽ സംഭരിക്കേണ്ട ഒരു മൂല്യം നൽകാൻ അത് ആവശ്യപ്പെടുന്നു, എന്തെങ്കിലും നൽകിയാൽ അത് നൽകിയതെന്തെന്ന് കാണിക്കും. നമ്മൾ ഒന്നും നൽകി എന്റർ അമർത്തിയില്ലെങ്കിൽ വേരിയബിൾ VAR ശൂന്യമാണെന്ന് പ്രഖ്യാപിക്കുകയാണ്, അതിനാൽ ഇത് default_value കാണിക്കുന്നു.

    നന്ദി.

    1.    KZKG ^ Gaara പറഞ്ഞു

      ഹാ എനിക്ക് അത് അറിയില്ലായിരുന്നു
      ശരി, വളരെ നന്ദി സുഹൃത്തേ ... അതാണ് ലേഖനത്തിന്റെ അവസാനത്തോടെ ഞാൻ ഉദ്ദേശിച്ചത്, എന്തെങ്കിലും പഠിപ്പിക്കാൻ ഞാൻ ഉദ്ദേശിക്കുന്നില്ല, അത്രയേയുള്ളൂ, ഞാൻ എപ്പോഴും ഇവിടെ പുതിയ എന്തെങ്കിലും പഠിക്കുമെന്ന് എനിക്കറിയാം

      ആശംസകളും നന്ദി.

      1.    ശരിയാണ് പറഞ്ഞു

        നിങ്ങൾ പറഞ്ഞത് ശരിയാണ്, ഒരാൾ ഇവിടെ നിരവധി കാര്യങ്ങൾ പഠിക്കുന്നു.

        ആശംസകളും സന്തോഷകരമായ അവധിദിനങ്ങളും !! 😀

  4.   ലൂക്കാസ് മാറ്റിയാസ് പറഞ്ഞു

    ഭയങ്കരവും മികച്ചതുമായ +1, ഇത് നിങ്ങളെ എടുത്ത സമയം ...
    പക്ഷെ ഞാൻ പരിശ്രമിക്കേണ്ടതാണ്

    1.    KZKG ^ Gaara പറഞ്ഞു

      വെറും 80 ദിവസത്തിനുള്ളിൽ ഞാൻ 1% എഴുതി, എന്റെ ഇന്റർനെറ്റ് എന്നെ അനുവദിക്കാത്തതിനാൽ ഇത് പോസ്റ്റുചെയ്യാൻ വളരെയധികം സമയമെടുത്തു.
      നിങ്ങളുടെ അഭിപ്രായത്തിന് നന്ദി

  5.   ഹ്യൂഗോ പറഞ്ഞു

    ചിലപ്പോൾ നെറ്റ്വർക്കുകൾ ഐസി‌എം‌പി പ്രോട്ടോക്കോൾ തടഞ്ഞിരിക്കുന്നതിനാൽ ഇത് ചെയ്യുന്നതിനുള്ള മറ്റൊരു മാർഗം ഡി‌എൻ‌എസ് ആണ്:

    (ഹോസ്റ്റ് -ta IP-ADDRESS> / dev / null 2> & 1) && എക്കോ "നെറ്റ്‌വർക്കിലേക്ക് കണക്റ്റുചെയ്‌തു"

    ഈ ഉദാഹരണത്തിൽ റിട്ടേൺ വാല്യു ചെക്ക് സ്പഷ്ടമാണെന്നും നിങ്ങൾ ശ്രദ്ധിക്കും

    1.    KZKG ^ Gaara പറഞ്ഞു

      നിങ്ങൾ‌ക്ക് എല്ലായ്‌പ്പോഴും ചങ്ങാതിയാണ്, എനിക്ക് പൂർണ്ണമായും അറിയാത്ത നുറുങ്ങുകൾ‌.
      നന്ദി, അഭിപ്രായം വിലമതിക്കപ്പെടുന്നു, ഹേ ... ഞാൻ പഠിക്കുന്ന മറ്റൊരു പുതിയ കാര്യം

  6.   ഡാറ്റക്സ് പറഞ്ഞു

    Gracias

    🙂

  7.   കുഷ്ഠരോഗി_ഇവാൻ പറഞ്ഞു

    ഈ വിഷയം പ്രസിദ്ധീകരിച്ച് നിരവധി ദിവസങ്ങൾ പിന്നിട്ടിട്ടും, ഇത് എന്നെ വളരെയധികം സഹായിച്ചിട്ടുണ്ട്, ഇപ്പോൾ ഞാൻ ഒരു തിരക്കഥ ബാഷിൽ ഉണ്ടാക്കി .. നന്ദി ഗാര ..

  8.   എഡ്ഗർ നവാരോ പറഞ്ഞു

    ഡോക്. നിങ്ങൾ എനിക്ക് കാര്യങ്ങൾ വ്യക്തമാക്കിയ സഹായത്തിന് നന്ദി.

    ഒരു ചോദ്യം, ഒരു കമ്പ്യൂട്ടർ യാന്ത്രികമായി പിംഗ് ചെയ്യുന്നത് നിർത്തുമ്പോൾ മറ്റൊന്ന് ഐപി മാറ്റുന്നതിനായി ഞാൻ എങ്ങനെ ചെയ്യും. എനിക്ക് ഇത് ഉണ്ട്.

    IP മാറ്റാൻ
    #! / ബിൻ / ബാഷ്
    ping -c 10 192.168.1.50 # അത് യാന്ത്രികമായി പിംഗ് ചെയ്യുന്നില്ലെങ്കിൽ
    ifconfig eth0 192.168.1.50 നെറ്റ്മാസ്ക് 255.255.255.0 പ്രക്ഷേപണം 192.168.1.0
    ifconfig eth0 താഴേക്ക്
    ifconfig eth0 മുകളിലേക്ക്

  9.   അബ്രാഹാം പറഞ്ഞു

    കാരണം നിങ്ങൾ ചോദ്യചിഹ്നം ഉപയോഗിക്കുകയാണെങ്കിൽ? ഇടുന്നത് തമ്മിൽ എന്ത് വ്യത്യാസമുണ്ട്? മറ്റേതെങ്കിലും കത്ത്

    1.    KZKG ^ Gaara പറഞ്ഞു

      $? 'മുമ്പത്തെ output ട്ട്‌പുട്ട് അല്ലെങ്കിൽ output ട്ട്‌പുട്ട്', അതായത് മുമ്പത്തെ കമാൻഡിന്റെ ഫലം ... means

      1.    ആന്ദ്രേസ് പറഞ്ഞു

        ഇതേ ഫലം നേടുന്നതിന് മറ്റൊരു വഴിയുണ്ട്, പിംഗ് കമാൻഡ് നേരിട്ട് ഇനിപ്പറയുന്നവയായി ഒരു ആർഗ്യുമെന്റായി കൈമാറുന്നു:

        ping -c 1 IP-ADDRESS ആണെങ്കിൽ; തുടർന്ന്
        എക്കോ "അതെ ഇത് നെറ്റിലാണ്"
        മറ്റാരെങ്കിലും
        എക്കോ "നെറ്റ്‌വർക്കിൽ ഇല്ല"
        fi

        എന്താണ് സംഭവിക്കുന്നത്, നിങ്ങൾ ഒരു ആർഗ്യുമെന്റായി കൈമാറുന്ന കമാൻഡിന്റെ റിട്ടേൺ മൂല്യം വിലയിരുത്തിയാൽ, അത് 0 നൽകിയാൽ അത് ശരിയാണ്, മറ്റെന്തെങ്കിലും തെറ്റാണ്. സ്ക്വയർ ബ്രാക്കറ്റുകൾ ടെസ്റ്റ് കമാൻഡിന് തുല്യമാണ്. എന്നാൽ നിങ്ങൾക്ക് ഏത് കമാൻഡും ഒരു ആർഗ്യുമെൻറായി കൈമാറാൻ കഴിയും (കമാൻഡ് കുറച്ച് മൂല്യം നൽകുന്നിടത്തോളം).

  10.   നന്ദി! പറഞ്ഞു

    ഹലോ, സ്ക്രിപ്റ്റിൽ എക്സ് ഉപയോക്താവിനൊപ്പം ഞാൻ ഒരു സ്ക്രിപ്റ്റ്.ഷെ എങ്ങനെ എക്സിക്യൂട്ട് ചെയ്യും, ഞാൻ ഒരു ഉപയോക്താവ് Y സൃഷ്ടിക്കുന്നു, ആ ഉപയോക്താവ് Y സ്ക്രിപ്റ്റ് എക്സിക്യൂഷൻ തുടരുന്നു.

    ഇത് ചെയ്യാൻ കഴിയുമോ ??

  11.   കുക്തോസ് പറഞ്ഞു

    വളരെ രസകരമാണ്, നന്ദി!

  12.   ഫ്രാൻസിസ്കോ പറഞ്ഞു

    സംഭാവനയ്ക്ക് നന്ദി, ഇത് xD മനസിലാക്കാൻ ഞാൻ ഒരു മണിക്കൂറാണ്, പക്ഷേ ഞാൻ അത് മനസ്സിലാക്കി !!!!.

  13.   എലോയ് പറഞ്ഞു

    സ്ക്രിപ്റ്റ് മികച്ചതാണ്. ഗണിതശാസ്ത്രപരമായി, ഇത് ($? == 0) പൂജ്യത്തിന് തുല്യമാണെങ്കിൽ ഇത് നെറ്റ്‌വർക്കിലില്ല, അല്ലാത്തപക്ഷം ഇത് നെറ്റ്‌വർക്കിലാണ്. ഇനിയും കുറച്ചുകൂടി സംവേദനാത്മകമാക്കാൻ ഞങ്ങൾ ആഗ്രഹിക്കുന്നുവെങ്കിൽ നമുക്ക് ഇങ്ങനെ പറയാൻ കഴിയും:
    echo -n IP നൽകുക:
    ip വായിക്കുക
    ping -c 1 $ ip

  14.   ഡാരിയോ പറഞ്ഞു

    ഹലോ, ഞാൻ ഇതിലേക്ക് വളരെ പുതിയതാണ്, ഒരു വായനയിലൂടെ ഒരു ടിക്കറ്റ് നമ്പർ (ആൽഫാന്യൂമെറിക്) നിർമ്മിക്കാൻ ഞാൻ ശ്രമിക്കുന്നു, നൽകിയവയ്ക്ക് ശരിയായ ഫോർമാറ്റ് ഉണ്ടെങ്കിൽ (ABC-123456) ഒരു "x" കമാൻഡ് എക്സിക്യൂട്ട് ചെയ്യുക, ഞാൻ ചെയ്യരുത് ' ഇത് എങ്ങനെ ചെയ്യണമെന്ന് അറിയില്ല, എന്നെ സഹായിക്കാമോ?

    എക്കോ "ടിക്കറ്റ് നൽകുക"
    റീഡ് -പി ടിക്കറ്റ്

    if ടിക്കറ്റ് = "അറിയില്ല (ഫോർമാറ്റ് ABC-123456"); cp file.txt $ ടിക്കറ്റ്; അല്ലാത്തപക്ഷം "തെറ്റായ ഫോർമാറ്റ്, വീണ്ടും ശ്രമിക്കുക"; read -p; fi.

    തീർച്ചയായും ഇത് ഭയങ്കരമാണെന്നും അവർ ചിരിക്കും, പക്ഷേ ഞാൻ പറഞ്ഞതുപോലെ ഞാൻ ഇത് ആരംഭിക്കുന്നു.

    ഞാൻ മോശമായി വിശദീകരിക്കുകയാണെങ്കിൽ ദയവായി എന്നോട് പറയൂ, കൂടുതൽ നന്നായി ചെയ്യാൻ ഞാൻ ശ്രമിക്കുന്നു.

    എല്ലാവരെയും കെട്ടിപ്പിടിക്കുക.

  15.   ഹംബർട്ടോ വൈ പറഞ്ഞു

    മികച്ച വിശദീകരണം, ആശംസകൾ

  16.   ചടുലമായ പറഞ്ഞു

    if, else എന്നീ കാര്യങ്ങളിൽ എനിക്ക് ചെറിയ സംശയമുണ്ട്.
    ഒരു ഫയൽ നിലവിലുണ്ടോ (ലോഗുകളിൽ ഒന്ന്) ഉണ്ടെന്ന് പരിശോധിക്കാനും ഇല്ലെങ്കിൽ, അത് സൃഷ്ടിക്കാനും പിന്നീട് അതിലേക്ക് എഴുതാനും എനിക്ക് ഒരു സ്ക്രിപ്റ്റ് വേണം. എന്നാൽ അത് നിലവിലുണ്ടെങ്കിൽ, നിങ്ങൾ അതിൽ എഴുതണമെന്ന് ഞാൻ ആഗ്രഹിക്കുന്നു.

    എനിക്കുള്ളത് ഇതാണ്:

    തീയതി = `തീയതി -R`
    #ഞാൻ വേരിയബിൾ തീയതി പരീക്ഷിക്കുകയായിരുന്നു, അത് a-ന്റെ ആരംഭത്തിനിടയിൽ അപ്‌ഡേറ്റ് ചെയ്തിട്ടില്ല
    #പ്രക്രിയയും അവസാനവും, ചിലപ്പോൾ ഒരു മണിക്കൂർ കഴിഞ്ഞേക്കാം, ശരിയായ സമയം പുറത്തുവരില്ല.

    എങ്കിൽ [-f /home/user/logs/test.log];
    അപ്പോള്
    /home/usuario/logs/test.log സ്പർശിക്കുക
    മറ്റാരെങ്കിലും
    പ്രതിധ്വനി "$ തീയതി: പുതുക്കിയത്" >> /home/user/logs/test.log
    പ്രതിധ്വനി «———————————————-» >> /home/user/logs/test.log
    fi

    സിദ്ധാന്തത്തിൽ ഇത് മികച്ചതായിരിക്കണം, എന്നാൽ റഫറൻസ് ഫയൽ ഇതിനകം നിലവിലുണ്ടെങ്കിൽ അത് അപ്‌ഡേറ്റ് ചെയ്യുന്നില്ല എന്നതാണ് യാഥാർത്ഥ്യം

    1.    ചടുലമായ പറഞ്ഞു

      ക്ഷമിക്കണം, അത് അയച്ചിട്ടില്ലെന്ന് ഞാൻ കണ്ടു, അത് ഇരട്ടിയായി