Bashã¹ã¯ãªããïŒéå§
Bashã¹ã¯ãªãããããŒã2ïŒã«ãŒã
Bashã¹ã¯ãªãããããŒã3ïŒãªãã·ã§ã³ãšã³ãã³ãã©ã€ã³ã¹ã€ãã
Bashã¹ã¯ãªãããããŒã4ïŒå
¥åãšåºå
Bashã¹ã¯ãªãããããŒã5ïŒã·ã°ãã«ãããã¯ã°ã©ãŠã³ãã¿ã¹ã¯ãã¹ã¯ãªãã管ç
Bashã¹ã¯ãªãããããŒã6ïŒé¢æ°ãšã©ã€ãã©ãªãŒã®éçº
Bashã¹ã¯ãªãããããŒã7ïŒsedãšã¯ãŒãã
Bashã¹ã¯ãªãããããŒã8ïŒawkããŒã¿åŠçèšèª
Bashã¹ã¯ãªããããŒã9ïŒæ£èŠè¡šçŸ
Bashã¹ã¯ãªãããããŒã10ïŒã±ãŒã¹ã¹ã¿ãã£
Bashã¹ã¯ãªãããããŒã11ïŒå¯Ÿè©±åãŠãŒãã£ãªãã£ã®æåŸ
ãšèªåå
ãã®äžé£ã®è³æã®åã®éšåãç¿åŸããã®ã§ãbashã¹ã¯ãªãããšã¯äœããããããèšè¿°ããæ¹æ³ãããã°ã©ã ãããŒãå¶åŸ¡ããæ¹æ³ããã¡ã€ã«ãæäœããæ¹æ³ã«ã€ããŠåŠã³ãŸããã 仿¥ã¯ãã¹ã¯ãªããã«å¯Ÿè©±æ§ã远å ãããŠãŒã¶ãŒããããŒã¿ãåä¿¡ããŠââãã®ããŒã¿ãåŠçããæ©èœãã¹ã¯ãªããã«è¿œå ããæ¹æ³ã«ã€ããŠèª¬æããŸãã


ããŒã¿ãã¹ã¯ãªããã«æž¡ãæãäžè¬çãªæ¹æ³ã¯ãã³ãã³ãã©ã€ã³ãªãã·ã§ã³ã䜿çšããããšã§ãã ãã©ã¡ãŒã¿ãŒãæå®ããŠã¹ã¯ãªãããåŒã³åºãããšã§ã圌ã«ãããæ©èœããããã®æ
å ±ãæž¡ããŸãã æ¬¡ã®ããã«ãªããŸãã
$ ./myscript 10 20
ãã®äŸã§ã¯ãã¹ã¯ãªããã¯2ã€ã®ãã©ã¡ãŒã¿ãŒã10ããšã20ããæž¡ããŸããã ããã¯ãã¹ãŠè¯ãããšã§ãããã¹ã¯ãªããå
ã®ããŒã¿ãèªã¿åãæ¹æ³ã¯ïŒ
ã³ãã³ãã©ã€ã³ãªãã·ã§ã³ã®èªã¿åã
bashã·ã§ã«ã¯ãã¹ã¯ãªãããåŒã³åºããããšãã«å
¥åãããã³ãã³ãã©ã€ã³ãã©ã¡ãŒã¿ãŒã«ãäœçœ®ãã©ã¡ãŒã¿ãŒãšåŒã°ããç¹å¥ãªå€æ°ãå²ãåœãŠãŸãã
$0 â
ã¹ã¯ãªãã$0 â
ååã§ãã
$1 â
æåã®ãã©ã¡ãŒã¿ãŒã§ãã
$2 â
çªç®ã®ãã©ã¡ãŒã¿ãŒ-ãªã©ã9çªç®ã®ãã©ã¡ãŒã¿ãŒãå
¥ã$9
倿°ãŸã§ã
ãããã®å€æ°ã䜿çšããŠãã¹ã¯ãªããã§ã³ãã³ãã©ã€ã³ãªãã·ã§ã³ã䜿çšããæ¹æ³ã¯æ¬¡ã®ãšããã§ãã
#!/bin/bash echo $0 echo $1 echo $2 echo $3
ãã©ã¡ãŒã¿ãŒãæå®ããŠã¹ã¯ãªãããå®è¡ããŸãã
./myscript 5 10 15
ããã¯ãã³ã³ãœãŒã«ã«åºåããããã®ã§ãã
ã¹ã¯ãªããã®å®è¡ã«äœ¿çšãããåºåãã©ã¡ãŒã¿ãŒã³ãã³ãã©ã€ã³ãªãã·ã§ã³ã¯ã¹ããŒã¹ã§åºåãããŠããããšã«æ³šæããŠãã ããã
ãã©ã¡ãŒã¿ã䜿çšããå¥ã®äŸãèŠãŠã¿ãŸãããã ããã§ãã¹ã¯ãªããã«æž¡ãããæ°å€ã®åèšãèŠã€ããŸãã
#!/bin/bash total=$[ $1 + $2 ] echo The first parameter is $1. echo The second parameter is $2. echo The sum is $total.
ã¹ã¯ãªãããå®è¡ããèšç®ã®çµæã確èªããŸãã
æž¡ãããæ°å€ã®åèšãèŠã€ããã¹ã¯ãªããã³ãã³ãã©ã€ã³ãªãã·ã§ã³ã¯æ°åã§ããå¿
èŠã¯ãããŸããã ã¹ã¯ãªããã¯æååãæž¡ãããšãã§ããŸãã ããšãã°ãæååãåŠçããã¹ã¯ãªããã¯æ¬¡ã®ãšããã§ãã
#!/bin/bash echo Hello $1, how do you do
å®è¡ããŠãã ããïŒ
./myscript Adam
圌ã¯ç§ãã¡ãåœŒã«æåŸ
ããããšãæšæž¬ããŸãã
æååãã©ã¡ãŒã¿ãŒã䜿çšããã¹ã¯ãªãããã©ã¡ãŒã¿ã«ã¹ããŒã¹ãå«ãŸããŠããŠãç¬ç«ããããŒã¿ãšããŠåŠçããå¿
èŠãããå Žåã¯ã©ããªããŸããïŒ ãã®ã¬ã€ãã®åã®éšåãç¿åŸããŠããã°ãçãã¯ãã§ã«ããã£ãŠãããšæããŸãã åŒçšç¬Šã®äœ¿çšã§æ§æãããŸãã
ã¹ã¯ãªããã9ã€ä»¥äžã®ãã©ã¡ãŒã¿ãŒãå¿
èŠãšããå Žåããããã«ã¢ã¯ã»ã¹ãããšãã¯ã倿°åã®æ°åãäžæ¬åŒ§ã§å²ãå¿
èŠããããŸããæ¬¡ã«äŸã瀺ããŸãã
${10}
ãã©ã¡ãŒã¿ã®æ€èšŒ
ã¹ã¯ãªããããã©ã¡ãŒã¿ãŒãªãã§åŒã³åºãããããã³ãŒãã®éåžžã®æäœã§ã¯ããããååšãããšæ³å®ãããå Žåããšã©ãŒãçºçããŸãã ãããã£ãŠãåŒã³åºãæã«ã¹ã¯ãªããã«æž¡ããããã©ã¡ãŒã¿ãŒãåžžã«ç¢ºèªããããšããå§ãããŸãã ããšãã°ãããã¯æ¬¡ã®ããã«ç·šæã§ããŸãã
#!/bin/bash if [ -n "$1" ] then echo Hello $1. else echo "No parameters found. " fi
æåã«ãã©ã¡ãŒã¿ãŒãæå®ããŠã¹ã¯ãªãããåŒã³åºããæ¬¡ã«ãã©ã¡ãŒã¿ãŒãæå®ããã«åŒã³åºããŸãã
ã³ãã³ãã©ã€ã³ãã©ã¡ãŒã¿ããã§ãã¯ããã¹ã¯ãªãããåŒã³åºããã©ã¡ãŒã¿ã«ãŠã³ã
ã¹ã¯ãªããã§ã¯ãæž¡ããããã©ã¡ãŒã¿ãŒã®æ°ãèšç®ã§ããŸãã bashã·ã§ã«ã¯ããã®ããã®ç¹å¥ãªå€æ°ãæäŸããŸãã ã€ãŸãã倿°
$#
ã¯ãåŒã³åºãæã«ã¹ã¯ãªããã«æž¡ããããã©ã¡ãŒã¿ãŒã®æ°ãå«ãŸããŸãã
ãã¹ãããŠã¿ãŸãããïŒ
#!/bin/bash echo There were $# parameters passed.
ã¹ã¯ãªãããåŒã³åºããŸãã
./myscript 1 2 3 4 5
ãã®çµæãã¹ã¯ãªããã¯5ã€ã®ãã©ã¡ãŒã¿ãŒãæž¡ãããããšãå ±åããŸãã
ã¹ã¯ãªããå
ã®ãã©ã¡ãŒã¿ãŒã®æ°ãæ°ãããã®å€æ°ã¯ãçªå·ãç¥ããªããŠãã¹ã¯ãªããã«æž¡ãããæåŸã®ãã©ã¡ãŒã¿ãŒãååŸããç°åžžãªæ¹æ³ãæäŸããŸãã ããã¯æ¬¡ã®ãããªãã®ã§ãã
#!/bin/bash echo The last parameter was ${!#}
ã¹ã¯ãªãããåŒã³åºããŠãäœã衚瀺ããããã確èªããŸãã
æåŸã®ãã©ã¡ãŒã¿ãŒãžã®ã¢ã¯ã»ã¹ãã¹ãŠã®ã³ãã³ãã©ã€ã³ãªãã·ã§ã³ããã£ããã£ãã
å Žåã«ãã£ãŠã¯ãã¹ã¯ãªããã«æž¡ããããã¹ãŠã®ãã©ã¡ãŒã¿ãŒããã£ããã£ããå¿
èŠããããŸãã ããã«ã¯å€æ°
$*
ãš
$@
䜿çšã§ããŸãã ã©ã¡ãã«ãã³ãã³ãã©ã€ã³ãã©ã¡ãŒã¿ãŒããã¹ãŠå«ãŸããŠãããããäœçœ®ãã©ã¡ãŒã¿ãŒã䜿çšããã«ã¹ã¯ãªããã«æž¡ããããã®ã«ã¢ã¯ã»ã¹ã§ããŸãã
$*
倿°ã«ã¯ãã³ãã³ãã©ã€ã³ã§å
¥åããããã¹ãŠã®ãã©ã¡ãŒã¿ãŒãåäžã®ãåèªããšããŠå«ãŸããŠããŸãã
倿°
$@
ãã©ã¡ãŒã¿ãŒã¯åå¥ã®ãåèªãã«åå²ãããŸãã ãããã®ãã©ã¡ãŒã¿ãŒã¯ããµã€ã¯ã«ããšã«ãœãŒãã§ããŸãã
äŸã®ãããã®å€æ°ã®éããèæ
®ããŠãã ããã ãŸãããã®å
容ãèŠãŠã¿ãŸãããïŒ
#!/bin/bash echo echo echo
ã¹ã¯ãªããåºåã¯æ¬¡ã®ãšããã§ãã
$ *ããã³$ @倿°ã芧ã®ãšãããäž¡æ¹ã®å€æ°ã®åºåã¯åãã§ãã æ¬¡ã«ããããã®å€æ°ã®éãã確èªããããã«ããããã®å€æ°ã®å
容ããµã€ã¯ã«ã§èª¿ã¹ãŠã¿ãŸãããã
#!/bin/bash count=1 for param in "$*" do echo "\$* Parameter #$count = $param" count=$(( $count + 1 )) done count=1 for param in "$@" do echo "\$@ Parameter #$count = $param" count=$(( $count + 1 )) done
ã³ã³ãœãŒã«ã§ã¹ã¯ãªãããå°å·ããå
容ãèŠãŠãã ããã 倿°ã®éãã¯æããã§ãã
ã«ãŒãå
ã®$ *ããã³$ @倿°ã®è§£æ$*
倿°ã«ã¯ãåäžã®ããŒã¿ãšããŠã¹ã¯ãªããã«æž¡ããããã¹ãŠã®ãã©ã¡ãŒã¿ãŒãå«ãŸããŸããã
$@
倿°ã§ã¯ãç¬ç«ããå€ã§è¡šãããŸãã ã©ã®å€æ°ã䜿çšãããã¯ãç¹å®ã®ã·ããªãªã§æ£ç¢ºã«å¿
èŠãªãã®ã«ãã£ãŠç°ãªããŸãã
ã·ããã³ãã³ã
bashã¹ã¯ãªããã§ã¯ãåèªã®æåéãã®æå³ã§äœçœ®ãã©ã¡ãŒã¿ãŒã®å€ã
shift
ããããã
shift
ã³ãã³ãã¯æ³šæããŠäœ¿çšããŠãã ããã
ãã®ã³ãã³ãã䜿çšãããšãããã©ã«ãã§ãäœçœ®ãã©ã¡ãŒã¿ã®å€ãå·Šã«ã·ããããŸãã ããšãã°ã倿°
$3
ã®å€ã¯å€æ°
$2
ã®å€ã«ãªãã
$2
ã®å€ã¯
$1
ã«ãªãã
$1,
åã®å€ã¯å€±ãããŸãã ã¹ã¯ãªããåãå«ã倿°
$0
å€ã¯å€æŽãããªãããšã«æ³šæããŠãã ããã
shift
ã³ãã³ãã䜿çšããŠãã¹ã¯ãªããã«æž¡ããããã©ã¡ãŒã¿ãŒãå埩åŠçããå¥ã®æ¹æ³ãæ€èšããŸãã
#!/bin/bash count=1 while [ -n "$1" ] do echo "Parameter #$count = $1" count=$(( $count + 1 )) shift done
ã¹ã¯ãªããã¯ã
while
ã¢ã¯ãã£ãã«
while
ãæåã®ãã©ã¡ãŒã¿ãŒã®å€ã®é·ãã確èªããŸãã é·ãããŒãã«ãªããšãã«ãŒãã¯çµäºããŸãã æåã®ãã©ã¡ãŒã¿ãŒã確èªããŠç»é¢ã«è¡šç€ºããåŸã
shift
ã³ãã³ããåŒã³åºããããã©ã¡ãŒã¿ãŒå€ã1ããžã·ã§ã³ã ãã·ãããããŸãã
shiftã³ãã³ãã䜿çšããŠãã©ã¡ãŒã¿ãŒãå埩åŠçããshift
ã³ãã³ãã䜿çšãããšãåŒã³åºããããã³ã«ã倿°
$1
å€
$1
å埩äžèœã«å€±ã
$1
泚æããŠãã ããã
ã³ãã³ãã©ã€ã³ã¹ã€ãã
ã³ãã³ãã©ã€ã³ã¹ã€ããã¯éåžžãããã·ã¥ãåã«ä»ããæåã®ããã«èŠããŸãã ã¹ã¯ãªããã®ç®¡çã«äœ¿çšãããŸãã ãã®äŸãèããŠã¿ãŸãããïŒ
#!/bin/bash echo while [ -n "$1" ] do case "$1" in -a) echo "Found the -a option" ;; -b) echo "Found the -b option" ;; -c) echo "Found the -c option" ;; *) echo "$1 is not an option" ;; esac shift done
ã¹ã¯ãªãããå®è¡ããŸãã
$ ./myscript âa âb âc âd
ãããŠããããã¿ãŒããã«ã«åºåãããã®ãåæããŸãã
ã¹ã¯ãªããã§ã®ããŒåŠçãã®ã³ãŒãã§ã¯ãã¹ã¯ãªããã«ãã£ãŠåŠçãããããŒã®ãªã¹ãã䜿çšããŠæž¡ãããããŒããã§ãã¯ãã
case
ã³ã³ã¹ãã©ã¯ãã䜿çšãããŸãã æž¡ãããå€ããã®ãªã¹ãã§èŠã€ãã£ãå Žåã察å¿ããã³ãŒããã©ã³ããå®è¡ãããŸãã ã¹ã¯ãªãããåŒã³åºããšãã«ãåŠççšã«æäŸãããŠããªãããŒã䜿çšããããšãã*ããã©ã³ããå®è¡ãããŸãã
ããŒãšãã©ã¡ãŒã¿ãŒãåºå¥ããæ¹æ³
å€ãã®å Žåãbashã¹ã¯ãªãããèšè¿°ãããšãã«ãã³ãã³ãã©ã€ã³ãã©ã¡ãŒã¿ãŒãšããŒã®äž¡æ¹ã䜿çšããå¿
èŠãããå Žåã«ç¶æ³ãçºçããŸãã ãããè¡ãæšæºçãªæ¹æ³ã¯ãããŒãçµäºããŠéåžžã®ãã©ã¡ãŒã¿ãéå§ããã¿ã€ãã³ã°ãã¹ã¯ãªããã«äŒããç¹æ®æåã·ãŒã±ã³ã¹ã䜿çšããããšã§ãã
ãã®ã·ãŒã±ã³ã¹ã¯äºéããã·ã¥ïŒ-ïŒã§ãã ã·ã§ã«ã¯ããã䜿çšããŠãããŒãªã¹ããçµäºããäœçœ®ã瀺ããŸãã ã¹ã¯ãªãããããŒã®çµããã®å
åãæ€åºããåŸãæ®ã£ãŠãããã®ã¯ããšã©ãŒãæããããšãªããããŒãšããŠã§ã¯ãªããã©ã¡ãŒã¿ãŒãšããŠåŠçã§ããŸãã äŸãèããŠã¿ãŸãããïŒ
#!/bin/bash while [ -n "$1" ] do case "$1" in -a) echo "Found the -a option" ;; -b) echo "Found the -b option";; -c) echo "Found the -c option" ;; --) shift break ;; *) echo "$1 is not an option";; esac shift done count=1 for param in $@ do echo "Parameter #$count: $param" count=$(( $count + 1 )) done
ãã®ã¹ã¯ãªããã¯ã
break
ã³ãã³ãã䜿çšããŠãäºéããã·ã¥ã«ééãããšãã«
while
ãçµäº
while
ã
ããã¯åœŒã®é»è©±ã®åŸã«èµ·ããããšã§ãã
ããŒãšã³ãã³ãã©ã€ã³ãªãã·ã§ã³ã®åŠçã芧ã®ããã«ãæž¡ãããããŒã¿ãè§£æããã¹ã¯ãªãããäºéããã·ã¥ãèŠã€ãããšãããŒã®åŠçãå®äºãããã©ã¡ãŒã¿ãšããŠåŠçãããŠããªããã¹ãŠã®ãã®ãèæ
®ãããŸãã
å€ã䜿çšããããŒåŠç
ã¹ã¯ãªãããããè€éã«ãªããšãéåžžã®ããŒã§ã¯äžååãªç¶æ³ãçºçããŸããã€ãŸããç¹å®ã®å€ãæã€ããŒã䜿çšããå¿
èŠããããŸãã ããšãã°ããã®æ©èœã䜿çšããã¹ã¯ãªãããåŒã³åºããšã次ã®ããã«ãªããŸãã
./myscript -a test1 -b -c test2
ã¹ã¯ãªããã¯ã远å ã®ãã©ã¡ãŒã¿ãŒãã³ãã³ãã©ã€ã³ã¹ã€ãããšå
±ã«äœ¿çšãããã¿ã€ãã³ã°ã倿ã§ããå¿
èŠããããŸãã
#!/bin/bash while [ -n "$1" ] do case "$1" in -a) echo "Found the -a option";; -b) param="$2" echo "Found the -b option, with parameter value $param" shift ;; -c) echo "Found the -c option";; --) shift break ;; *) echo "$1 is not an option";; esac shift done count=1 for param in "$@" do echo "Parameter #$count: $param" count=$(( $count + 1 )) done
ãã®ã¹ã¯ãªãããæ¬¡ã®åœ¢åŒã§åŒã³åºããŸãã
./myscript -a -b test1 -d
圌ã®ä»äºã®çµæãèŠãŠã¿ãŸãããã
ããŒãã©ã¡ãŒã¿ãŒåŠçãã®äŸã§ã¯ã
case
æ§é ã§3ã€ã®ããŒãåŠçãããŸãã
-b
ã¹ã€ããã«ã¯è¿œå ã®ãã©ã¡ãŒã¿ãŒãå¿
èŠã§ãã åŠçãããããŒã¯å€æ°
$1
ã«ããããã察å¿ãããã©ã¡ãŒã¿ãŒã¯
$2
ãªããŸãïŒ
shift
ã³ãã³ããããã§äœ¿çšããããããåŠçããããšãã¹ã¯ãªããã«è»¢éããããã¹ãŠãå·Šã«ã·ããããŸãïŒã ãããçè§£ãããšã倿°
$2
å€ãæœåºããã ãã§ãç®çã®ããŒã®ãã©ã¡ãŒã¿ãŒãåŸãããŸãã ãã¡ãããæ¬¡ã®ããŒã
$1
æŒãããã«ããã1ã€ã®
shift
ã³ãã³ããå¿
èŠã§ãã
æšæºããŒã䜿çšãã
bashã¹ã¯ãªãããäœæãããšãã¯ãã³ãã³ãã©ã€ã³ããŒã«ä»»æã®æåãéžæãããããã®ããŒã«å¯Ÿããã¹ã¯ãªããã®åå¿ãä»»æã«èšå®ã§ããŸãã ãã ããLinuxã®äžçã§ã¯ãäžéšã®ããŒã®æå³ã¯ãæºæ ããã®ã«åœ¹ç«ã€æšæºçãªãã®ã«ãªã£ãŠããŸãã ãããã®ããŒã®ãªã¹ãã¯æ¬¡ã®ãšããã§ãã
-a
ãã¹ãŠã®ãªããžã§ã¯ãããªã¹ãããŸãã
-c
ã«ãŠã³ããå®è¡ããŸãã
-d
ãã£ã¬ã¯ããªãæå®ããŸãã
-e
ãªããžã§ã¯ããå±éããŸãã
-f
ããŒã¿ãèªã¿èŸŒããã¡ã€ã«ãæå®ããŸãã
-h
ã³ãã³ãã®ãã«ããåºåããŸãã
-i
æåã®å€§æåãšå°æåãåºå¥ããŸããã
-l
ãã«ãã©ãŒãããã®ããŒã¿åºåãå®è¡ããŸãã
-n
é察話åïŒãããïŒã¢ãŒãã䜿çšããŸãã
-o
åºåã®ãªãã€ã¬ã¯ãå
ã®ãã¡ã€ã«ãæå®ããŸãã
-q
ã¯ã¯ã€ãšããã¢ãŒãã§ã¹ã¯ãªãããå®è¡ããŸãã
-r
ãã©ã«ããŒãšãã¡ã€ã«ãååž°çã«åŠçããŸãã
-s
ã¹ã¯ãªããããµã€ã¬ã³ãã¢ãŒãã§å®è¡ããŸãã
-v
詳现åºåãå®è¡ããŸãã
-x
ãªããžã§ã¯ããé€å€ããŸãã
-y
ãã¹ãŠã®è³ªåã«yesãšçããŸãã
Linuxã§äœæ¥ããŠããå Žåããããã®ããŒã®å€ãã«ç²ŸéããŠããå¯èœæ§ããããŸãã ã¹ã¯ãªããã§åžžèçã«ãããã䜿çšãããšãããã¥ã¡ã³ããèªãããšãå¿é
ããããšãªãããŠãŒã¶ãŒãããããšå¯Ÿè©±ã§ããããã«ãªããŸãã
ãŠãŒã¶ãŒããããŒã¿ãåä¿¡ãã
ããŒãšã³ãã³ãã©ã€ã³ãªãã·ã§ã³ã¯ãã¹ã¯ãªããã䜿çšãããŠãŒã¶ãŒããããŒã¿ãååŸããããã®åªããæ¹æ³ã§ãããå Žåã«ãã£ãŠã¯ãããå€ãã®å¯Ÿè©±æ§ãå¿
èŠã§ãã
ã¹ã¯ãªããã«ã¯ãããã°ã©ã ã®å®è¡äžã«ãŠãŒã¶ãŒãå
¥åããå¿
èŠãããããŒã¿ãå¿
èŠãªå ŽåããããŸãã ãã®ç®çã®ããã«ãbashã·ã§ã«ã«
read
ã³ãã³ãããããŸãã
ãã®ã³ãã³ãã䜿çšãããšãæšæºå
¥åïŒããŒããŒãããïŒãŸãã¯ä»ã®ãã¡ã€ã«èšè¿°åã䜿çšããŠå
¥åãåãå
¥ããããšãã§ããŸãã ããŒã¿ãåãåã£ãåŸããã®ã³ãã³ãã¯ãããã倿°ã«å
¥ããŸãïŒ
#!/bin/bash echo -n "Enter your name: " read name echo "Hello $name, welcome to my program."
ããã³ãããçºè¡ãã
echo
ã³ãã³ãã
-n
ã¹ã€ããã§åŒã³åºãããããšã«æ³šæããŠãã ããã ããã«ãããæåŸ
ç¶ã®æåŸã«æ¹è¡æåã衚瀺ãããªããããã¹ã¯ãªãããŠãŒã¶ãŒã¯æ¬¡ã®è¡ã§ã¯ãªãæåŸ
ç¶ãšåãå Žæã«ããŒã¿ãå
¥åã§ããŸãã
ãŠãŒã¶ãŒå
¥ååŠçread
åŒã³åºã
read
ããã€ãã®å€æ°ãæå®ã§ããŸãã
#!/bin/bash read -p "Enter your name: " first last echo "Your data for $last, $firstâŠ"
ããã¯ãã¹ã¯ãªãããéå§åŸã«åºåãããã®ã§ãã
èªã¿åãã³ãã³ãã®ããã€ãã®å€æ°read
ãåŒã³åºããŠå€æ°ãæå®ããªãå ŽåããŠãŒã¶ãŒãå
¥åããããŒã¿ã¯ç¹å¥ãª
REPLY
ç°å¢å€æ°ã«é
眮ãããŸãã
#!/bin/bash read -p echo Hello $REPLY, welcome to my program.
REPLYç°å¢å€æ°ã®äœ¿çšãŠãŒã¶ãŒãããŒã¿ãå
¥åãããã©ããã«é¢ä¿ãªãã¹ã¯ãªãããå®è¡ãç¶ããå¿
èŠãããå Žåã
read
ã³ãã³ããåŒã³åºããš
-t
ã¹ã€ããã䜿çšã§ããŸãã ã€ãŸããããŒãã©ã¡ãŒã¿ã¯å
¥åã®ã¿ã€ã ã¢ãŠããç§åäœã§èšå®ããŸãã
#!/bin/bash if read -t 5 -p "Enter your name: " name then echo "Hello $name, welcome to my script" else echo "Sorry, too slow! " fi
5ç§ä»¥å
ã«ããŒã¿ãå
¥åãããªãå Žåãã¹ã¯ãªããã¯æ¡ä»¶ä»ã
else
ãã©ã³ããå®è¡ããè¬çœªã衚瀺ããŸãã
ããŒã¿å
¥åã®å¶éæéãã¹ã¯ãŒãå
¥å
ã¹ã¯ãªããã®è³ªåã«å¯ŸããŠãŠãŒã¶ãŒãå
¥åããå
容ã衚瀺ããªãã»ããããå ŽåããããŸãã ããšãã°ãããã¯éåžžããã¹ã¯ãŒããèŠæ±ããããšã«ãã£ãŠè¡ãããŸãã
read
ã³ãã³ãã®
-s
ã¯ãããŒããŒãããŒã¿ãç»é¢ã«è¡šç€ºãããªãããã«ããŸãã å®éã«ã¯ãããŒã¿ã¯åºåãããŸããã
read
ã³ãã³ãã¯ããã¹ãã®è²ãèæ¯è²ãšåãã«ããŸãã
#!/bin/bash read -s -p pass echo
ããããã®ã¹ã¯ãªããã®ä»çµã¿ã§ãã
æ©å¯ããŒã¿å
¥åãã¡ã€ã«ããããŒã¿ãèªã¿åã
read
ã³ãã³ãã¯ãåŒã³åºãããšã«ããã¡ã€ã«ãã1è¡ã®ããã¹ããèªã¿åãããšãã§ããŸãã ãã¡ã€ã«ã«æªèªã®è¡ããªããªããšã忢ããŸãã ã¹ã¯ãªããã§ãã¡ã€ã«ã®å
容å
šäœãååŸããå Žåããã€ãã©ã€ã³ã䜿çšããŠããã¡ã€ã«ã®
cat
ã®åŒã³åºãã®çµæã転éã§ããŸãã
while
ã
read
ã³ãã³ããå«ãã³ã³ã¹ãã©ã¯ãïŒãã¡ããã
cat
䜿çšã¯ããªããã£ãã«èŠããŸãããç§ãã¡ã®ç®æšã¯ãåå¿è
ãçµéšè±å¯ãªãŠãŒã¶ãŒã¯å¿
ãçè§£ããŠãã ããïŒã
ãã¡ã€ã«ãèªã¿åãããã«ä»èª¬æããã¢ãããŒãã䜿çšããã¹ã¯ãªãããæžããŸãããã
#!/bin/bash count=1 cat myfile | while read line do echo "Line $count: $line" count=$(( $count + 1 )) done echo "Finished"
åäœäžã®åœŒãèŠãŠã¿ãŸãããã
ãã¡ã€ã«ããããŒã¿ãèªã¿åãããã§ã¯ããã¡ã€ã«ã®å
容ã
while
ã«æž¡ãããã®ãã¡ã€ã«ã®ãã¹ãŠã®è¡ããœãŒãããŠãããããã®æ°ãšå
容ã衚瀺ããŸããã
ãŸãšã
仿¥ã¯ãããŒãšã³ãã³ãã©ã€ã³ãã©ã¡ãŒã¿ãŒã䜿çšããäœæ¥ã調ã¹ãŸããã ãããã®ããŒã«ããªããã°ãã¹ã¯ãªããã®äœ¿çšç¯å²ã¯éåžžã«çããªããŸãã ã¹ã¯ãªãããæžãããŠããŠãã圌ããèšãããã«ããããªãèªèº«ã®ããã«ãã ããã«ãããã°ã©ã ã®å®è¡äžã«ãŠãŒã¶ãŒããããŒã¿ãåä¿¡ããæ¹æ³ãæ€èšããŸãããããã«ãããã¹ã¯ãªãããã€ã³ã¿ã©ã¯ãã£ãã«ãªããŸãã
次åã¯ãå
¥åæäœãšåºåæäœã«ã€ããŠèª¬æããŸãã
芪æãªãèªè
ïŒ ãã®è³æã·ãªãŒãºã®åã®éšåã«é¢ããã³ã¡ã³ãã§ããªãã®çµéšãå
±æããŠããã ãããããšãããããŸãã èµ·åæãŸãã¯æäœäžã«ã¹ã¯ãªããã«æž¡ãããšãã§ãããã¹ãŠã®åŠçã«ã€ããŠäœãèšãããããšãããã°ãå€ãã®äººãããã«ã€ããŠèªãããšã«èå³ããããšç¢ºä¿¡ããŠããŸãã
