የባሽ እስክሪፕት በመጠቀም የ DNI ፊደል እንዴት እንደሚሰላ ይወቁ

 

ካረካኩ በኋላ መስፈርቶች ምዕራፍ bash ስክሪፕቶችን ማሄድ መቻል፣ እና ተረዱ ተግባራትን እንዴት እንደሚገልጹ፣ እንዴት እንደሆነ ይማሩ በባሽ ተግባራት ውስጥ እሴቶችን ይመልሱ. ለዚህም ትንሽ ‹ash――――› ፕሮግራም በባሽ ውስጥ እንፈጥራለን የዲኤንአይአይ ፊደላትን ያስሉ. እኔ ጥሩ ዜና አለኝ-ባሽም ይችላል በዊንዶውስ 10 ላይ ይጫናል. በስርዓተ ክወናዎች ውስጥ ሁሉንም የሊኑክስ ኃይል በምን ሊጨምር ይችላል ፣ እንበል ... የተለየ ፡፡

በመጀመሪያ እኛ ማድረግ አለብን እንዴት እንደሆነ ይረዱ ተተካ፣ እንደማንኛውም ቋንቋ የመቻል እድሉ ያለው የሕብረቁምፊ ክፍሎችን ይመልሱ ከሰንሰለቱ አመላካች ፣ የቦታው አቀማመጥ እና ርዝመት ፡፡ የዚህን ባህሪ ምሳሌ እንመልከት ፡፡ ስክሪፕታችንን የምንፈጠረው በ

$ touch prueba_substring
$ 

ከዚያ ከሚወዱት አርታኢ ጋር የሚከተለውን ኮድ እንጨምራለን። በተርሚናል ሞድ ውስጥ የእኔ ተመራጭ አርታኢ ተስተካክሏል. ግን በቅርብ ጊዜ ናኖ ጥንካሬ እያገኘ መሆኑን አይቻለሁ ፡፡

 
#!/usr/bin/env bash 
# Demo comportamiento de substrings en Bash 
# Pedro Ruiz Hidalgo 
# version 1.0.0 
# Febrero 2017 

ret="\n" 
CADENA="siempre uso Linux con Ubuntu y Ubunlog, claro!" 
#      "0123456789012345678901234567890123456789012345" 
#      "          1         2         3         4     " 
# (usa la regla para medir los caracteres) 

echo -e $ret ${CADENA:12} 
echo -e $ret ${CADENA:12:5} 
echo -e $ret "Aprendo en ${CADENA:31:7}" 
exit 0 

ፈቃዶቹን ማከል እና እንደዚህ ማከናወን-

$ chmod +x prueba_substring
$ ./prueba_substring
$

ሁሉም ነገር በጥሩ ሁኔታ ከሄደ የሚከተለውን ውጤት መመለስ አለበት

 Linux Con Ubuntu y Ubunlog, claro!

 Linux

 Aprendo en Ubunlog

ንዑስ መስመር ክዋኔ

ከላይ እንደሚመለከቱት ከ 13 እስከ 15 ያሉትን መስመሮች አጉልቻለሁ ከስክሪፕቱ እና ደረጃ ወደ ኮድዎን ያብራሩ. የገደል ማሚቶ ጋር መለኪያ "-e" እንድናሳይ ያስችለናል የሚቀጥለው መስመር ቁምፊ፣ ይህንን ባህሪ በ መስመር 7 እና ለተለዋጭ «ret» ተመደበ.

መስመር 13: መሰኪያውን አሳየዋለሁ (በመተካት) በ CHAIN ​​ተለዋዋጭ ፣ በመስመር 8 ላይ ተገልጻል ፣ ከቦታ 12. ሁልጊዜ ከቦታ ቦታ 0 ለመቁጠር ይጀምራል.

መስመር 14: ከ የ “CHAIN” ተለዋዋጭ አቀማመጥ 12 ፣ የ 5 ክፍልን አሳያለሁ. እርስዎ እንደሚያረጋግጡት ይህ ከ ‹ይዛመዳል› "ሊነክስ".

መስመር 15-ሀን እጽፋለሁ በጥቅስ ውስጥ የተዘጉ አዲስ ሕብረቁምፊዎች በ “CHAIN” ተለዋዋጭ ንዑስ ክፍል ለመቀጠል ‹በ ውስጥ እማራለሁ› ብዬ እጀምራለሁ የ 31 ክፍልን በመያዝ ከቦታ 7ይህ ይዛመዳል "ኡቡንሎግ".

የመልሶ ማቋቋም ተግባራት

ከባሽ ጋር የመመለሻ ዘዴው የሚወጣው በ “ተመላሽ” ትዕዛዝ ነው ፣ ምንም እንኳን ከባሽ ተለዋዋጭ ጋር ማመሳሰል ሲኖርብን እርስዎ ሊለመዱት የሚገባውን “እንግዳ” ዘዴን ይተገበራል። እስቲ የሚከተለውን ምሳሌ እንመልከት-

#!/usr/bin/env bash

function suma(){
  local a=$1
  local b=$2
  return $(( $a + $b ))
}

suma 12 23
retorno=$?
echo $retorno

ተግባራት በባሽ ውስጥ ከመጠቀምዎ በፊት ሁል ጊዜ መገለጽ አለባቸውስለዚህ ፣ ከ banባንግ የተግባር ድምርን እናሳውቃለን ፣ በመስመር 4 ላይ እኛ የምንለካው በ ‹አካባቢያዊ› የመጀመሪያዎቹ መለኪያዎች ምደባ ነው ($ 1) ወደ ተለዋጭ “ሀ”። መስመር 5 ላይ ተመሳሳይ አሰራር ፣ የት ሁለተኛውን መለኪያ ሀ ($ 2) ለተለዋጭ «ቢ» እንመድባለን. በመስመር ዘጠኝ ውስጥ የደመወዝ ተግባሩን በ ውስጥ በተገለጸው ዘዴ በሚለወጡ ሁለት መለኪያዎች እንጠራዋለን ተለዋዋጮች “ሀ” እና “ለ” እና ከ “መመለስ” ጋር ታክለን እንመልሳቸዋለን, በተግባር መመሪያዎች ውስጥ በቀላሉ እንደሚታየው.

ተለዋዋጭውን “ተመላሽ” በ ውስጥ እንመድባለን የተግባር ድምር አፈፃፀም ውጤት መስመር 10.

በየትኛው መንገድ ላይ ጥናት ካደረጉ እና ከተረዱ በኋላ የእሴቶች ተመላሾች እና ለተለዋጮች የተሰጠው ሥራ ላይ ይውላል የኛን መርሃግብር ለማየት እንሂድ የ የዲኤንአይ ፊደላትን ከባሽ ጋር ማስላት.

የዲኤንአይ ፊደሎችን ከባሽ ጋር ለማስላት ስክሪፕት

 

#!/usr/bin/env bash

nl="\n"

LETRAS="TRWAGMYFPDXBNJZSQVHLCKEO"
NORMAL=0
ERROR=66

if [ $# -lt 1 ];
then
	echo -e "$nl Cálculo DNI, introduce número$nl"
	read -r ndni
	[ -z "${ndni//[0-9]}" ] && [ -n "$ndni" ] || echo "Sólo números" && exit $ERROR
else
	ndni=$1
fi

modulo ()
{
	return $(( $ndni  % 23 ))
}

modulo ndni
mod=$?
echo $ndni-${LETRAS:$mod:1}
exit $NORMAL

La የዲ ኤንአይአችን ደብዳቤ ከ ... ጋር ይዛመዳል ቁጥር ሞዱል 23. ይህ ነው, ቁጥሩን በ 23 እንከፍለዋለን y ባለአደራውን ከመመልከት ይልቅ የቀረውን ክፍል እናከብራለን. ሌሎቹ ቃላት, እንደ በ 23 የሚከፈሉ ቁጥሮች ዜሮ ይሰጣሉ፣ የሚል ደብዳቤ ከእሱ ጋር ይዛመዳል «ቲ»፣ ከዚህ ጀምሮ አቀማመጥ 0 ነው፣ ከላይ ባለው ጽሑፍ ውስጥ እንዳየነው ፣ ሁሉም ማያያዣዎች ከዜሮ መቁጠር ይጀምራሉ. ያም ማለት በሞጁሉ ሁልጊዜ ቁጥሮች እናገኛለን በ 0 (ፊደል "ቲ") እና በ 22 (ፊደል "ኦ") መካከል. እንደ ሌሎች ቋንቋዎች ሁሉ በባሽ ውስጥ ሞጁሉ የሚገኘው በፐርሰንት ኦፕሬተር «%» አማካይነት ነው.

መስመር 5 ፊደላትን እንገልፃለን በትእዛዝዎ ግልጽ ነው ፣ ትዕዛዙ ሊለወጥ አይችልም ለአስተማማኝ ውጤቶች ፡፡ በመስመሩ ውስጥ 9 ብለን እየጠየቅን ነው ስክሪፕቱን ሲደውሉ ቁጥር እንደ ልኬት ቢሆን ኖሮ. መለኪያው ከሌለ ከ 11 እስከ 13 ባለው መስመር ላይ ባለው መመሪያ በቁልፍ ሰሌዳ እንጠይቃለን ፣ በመስመሩ 15 ላይ ያለውን ቅደም ተከተል ለማስላት ስክሪፕቱ ከቁጥር ጋር ከተጠራ ይህን ልኬት ለተለዋጭ «ndni» ይመድቡ።

በመስመር 23 ውስጥ በ ‹ግቤት› በኩል የሞዱሎውን ተግባር እንጠቅሳለን ተለዋዋጭ «ndni» ፣ ወይ በባሽ ውስጥ እንደ መለኪያ ወይም በቁልፍ ሰሌዳ እንደ ግብዓት ተሰብስቧል. በመስመር 24 ውስጥ የተግባሩ መመለስ ለተለዋጭ «ሞድ» ተመድቧል። በ 25 ሜትር መስመር ላይእንደ ሞጁሉ እና በሰሌዳው ስሌት መሠረት ቁጥሩን ፣ ሰረዝን እና ከቦታው ጋር የሚስማማውን ፊደል እናሳያለን.

የእኛን የዲኤንአይ ስክሪፕት በመሞከር ላይ

 

$ ./dni 12345678
12345678-Z

ደህና ፣

$ ./dni

 Cálculo DNI, Introduce número

ሁሉም እስክሪፕቶቻችን ለ “ደራሲው“ -a ”እና ሌላ“ -h ”ን ለእገዛ እና ለአገባብ ማካተት አለባቸው። ቀደም ባሉት መጣጥፎች ላይ እንዳየነው ወይም ኮዱን የበለጠ ከባድ እንዳይሆን ለማድረግ እተወዋለሁ ፡፡
ይህ ጽሑፍ ለእርስዎ ፍላጎት እንደነበረ ተስፋ እና ተስፋ አደርጋለሁ ፡፡


የጽሑፉ ይዘት የእኛን መርሆዎች ያከብራል የአርትዖት ሥነ ምግባር. የስህተት ጠቅ ለማድረግ እዚህ.

4 አስተያየቶች ፣ ያንተን ተወው

አስተያየትዎን ይተው

የእርስዎ ኢሜይል አድራሻ ሊታተም አይችልም. የሚያስፈልጉ መስኮች ጋር ምልክት ይደረግባቸዋል *

*

*

  1. ለመረጃው ኃላፊነት ያለው: ሚጌል Áንጌል ጋቶን
  2. የመረጃው ዓላማ-ቁጥጥር SPAM ፣ የአስተያየት አስተዳደር ፡፡
  3. ህጋዊነት-የእርስዎ ፈቃድ
  4. የመረጃው ግንኙነት-መረጃው በሕጋዊ ግዴታ ካልሆነ በስተቀር ለሶስተኛ ወገኖች አይተላለፍም ፡፡
  5. የውሂብ ማከማቻ በኦክሴንትስ አውታረመረቦች (አውሮፓ) የተስተናገደ የውሂብ ጎታ
  6. መብቶች-በማንኛውም ጊዜ መረጃዎን መገደብ ፣ መልሰው ማግኘት እና መሰረዝ ይችላሉ ፡፡

  1.   ኦማር ቢኤም አለ

    ጤና ይስጥልኝ አንድ ሰው ሊረዳኝ ይችላል lubuntu ን ወደ ቀድሞ ዴስክቶፕዬ መጫን ያስፈልገኛል ነገር ግን በዩኤስቢ እንድጭን አይፈቅድልኝም እና የዲቪዲ ድራይቭ ተበላሽቷል እኔ መጫን እፈልጋለሁ ፡፡ http://www.plop.at ወደ ኡቡንቱ 16.04 LTS ግን እንዴት እንደማደርገው አላውቅም ፡፡ አመሰግናለሁ

    1.    ፔድሮ ሩዝ ሂዳልጎ የቦታ ያዥ ምስል አለ

      ኦማር,

      እርስዎ እንዳመለከቱት ሁኔታው ​​በጣም ተስፋ ሰጪ አይደለም-ዩኤስቢ አይፈቀድም እና የዲቪዲ ድራይቭ ተጎድቷል ፡፡ ግን እርስዎም “ኮምፕዩተር የቆየ ነው” ብለው አስተያየት ይሰጣሉ ፣ ያ ማለት አዲስ አለዎት ማለት ነው ፡፡ መጫኑን ከሰራው ኮምፒተርዎ በሃርድ ድራይቭ ላይ ለማስቀመጥ እና ከዚያ አንፃፊ ለመጫን ይሞክሩ።

      ከሰላምታ ጋር

    2.    ቄሳር ዴልባ አለ

      ኮምፒተር እና ተንቀሳቃሽ ሳጥን አለዎት? በተንቀሳቃሽ የዩኤስቢ ሳጥን ውስጥ የድሮውን ኮምፒተር ሃርድ ድራይቭ ሰቅለው የመጫኛ ዲስኩን ይጀምሩ ፡፡
      ሊነክስ እና ዩኒክስ በመነሻ ደረጃ ላይ ያለውን ሃርድዌር ከግምት ውስጥ አያስገቡም ፣ ዲስኩን እንደገና በሊኑክስ በተጫነው ማስቀመጥ ይችላሉ ፡፡

    3.    ኦማር ቢኤም አለ

      በጣም አመሰግናለሁ እላችኋለሁ ያደረግኩት ከኡቡንቱ 16.04 ወደ ሉቡንቱ 16.04 በተመሳሳይ ኦፐሬቲንግ ሲስተም ሄጄ ነበር እናም ስለዚህ አሮጌው ኮምፒተርዬ በደንብ እየሰራ ነበር የኮሎምቢያ ሰላምታዎች ፡፡