Upgrade to Pro — share decks privately, control downloads, hide ads and more …

シェルで繰り返し処理

Sponsored · SiteGround - Reliable hosting with speed, security, and support you can count on.
Avatar for papiron papiron
April 30, 2016

 シェルで繰り返し処理

第22回シェル芸勉強会の午前の部で、福岡サテライト独自にやった初心者向けの内容です。

Avatar for papiron

papiron

April 30, 2016
Tweet

More Decks by papiron

Other Decks in Technology

Transcript

  1. ੍ޚߏ଄Λ࢖͏(1) $ n=1;while [ $n -le 100 ]; do echo

    '羊 が'$n'匹'; n=`expr $n + 1`; done 羊が1匹 羊が2匹 .. .. 羊が99匹 羊が100匹 γΣϧͰ΋੍ޚߏ଄͕࢖͑Δ whileϧʔϓͰ܁Γฦ͠ॲཧ
  2. ੍ޚߏ଄Λ࢖͏(1) #!/bin/sh n=1 while [ $n -le 100 ] do

    echo '羊が'$n'匹' n=`expr $n + 1` done ϫϯϥΠφͰ͸ݟʹ͍͘ͷͰ γΣϧεΫϦϓτͰهࡌ
  3. ਺ྻσʔλ࡞੒ͷํ๏ $ seq 1 100 1 2 .. 100 bashͷϒϨʔεల։

    Λ࢖͏ $ echo {1..100} 1 2 3 .. 99 100 seqίϚϯυΛ࢖͏
  4. ੍ޚߏ଄Λ࢖͏(2) $ for n in `seq 100`; do echo '羊が'$n'匹';

    done $ for n in {1..100} ; do echo '羊が'$n'匹'; done 1͔Β100ͷ਺ྻΛ४උ ܁Γฦ͠ॲཧ͸forϧʔϓΛ࢖༻ `seq 100`͸γΣϧͷίϚϯυஔ׵ػೳ
  5. ੍ޚߏ଄Λ࢖͏(2) #!/bin/sh for n in `seq 100` do echo '羊が'$n'匹'

    done ϫϯϥΠφͰ͸ݟʹ͍͘ͷͰ γΣϧεΫϦϓτͰهࡌ
  6. ੍ޚߏ଄Λ࢖͏(3) $ seq 100 | while read n; do echo

    '羊が'$n'匹'; done 1͔Β100ͷ਺ྻΛ४උ ܁Γฦ͠ॲཧͷwhileϧʔϓʹύΠϓ઀ଓ
  7. ੍ޚߏ଄Λ࢖͏(3) #!/bin/sh seq 100 |\ while read n do echo

    '羊が'$n'匹' done ϫϯϥΠφͰ͸ݟʹ͍͘ͷͰ γΣϧεΫϦϓτͰهࡌ
  8. xargsΛ࢖͏(1) $ seq 100 | xargs printf '羊が%d匹\n' 1͔Β100ͷ਺ྻΛ४උ xargsʹύΠϓ઀ଓͯ͠printfίϚϯυ΁

    printf '羊が%d匹' 1 2 3 4 .. 99 100 ࣮࣭͸ԼهͷίϚϯυ͕࣮ߦ ܁Γฦ࣮͠ߦ͕ແ͍ͨΊߴ଎ॲཧ͕ظ଴
  9. xargsΛ࢖͏(2) $ seq 100 | xargs -I@ echo '羊が@匹' 1͔Β100ͷ਺ྻΛ४උ

    xargsͷ-IΦϓγϣϯΛར༻ echo '羊が1匹' echo '羊が2匹' .. echo '羊が100匹' ࣮࣭͸ӈهͷίϚϯυ͕ ࣮ߦ͞Ε͍ͯΔ
  10. γΣϧʹίϚϯυྻΛ $ seq -f 'echo 羊が%g匹' 100 | sh ԼهͷΑ͏ͳίϚϯυྻΛ࡞੒

    γΣϧʹύΠϓͰ౉࣮ͯ͠ߦ echo 羊が1匹 echo 羊が2匹 .. echo 羊が99匹 echo 羊が100匹 ύΠϓ γΣϧ
  11. ϑΟϧλίϚϯυͰ $ seq 100 | sed 's/^/羊が/' | sed 's/$/匹/'

    1͔Β100ͷ਺ྻΛ४උ ύΠϓͰsedʹ౉ͯ͠ॲཧ sed͕ϑΟϧλͱͯ͠ಈ࡞ ίϚϯυͷ܁Γฦ࣮͠ߦ͕ແ͍ͨΊ ߴ଎ͳॲཧ͕ظ଴ग़དྷΔ