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

シェルで繰り返し処理

papiron
April 30, 2016

 シェルで繰り返し処理

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

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͕ϑΟϧλͱͯ͠ಈ࡞ ίϚϯυͷ܁Γฦ࣮͠ߦ͕ແ͍ͨΊ ߴ଎ͳॲཧ͕ظ଴ग़དྷΔ