sh
?桼?ƥ????ƥ?
?ϥ????ƥ???ɸ?ॳ?ޥ??ɥ??ץ?Ǥ???
???? sh
?? IEEE Std 1003.2
(“POSIX.2”)
?Υ????뵬?????б??????Ӿ??ˤ????ޤ???
?ܥС????????Υ??????ϡ??????ˤ??äƤ?
Korn shell ??Ʊ?ͤ?
?????뵡ǽ??¿?????äƤ??ޤ????? pdksh
?Τ褦?? Korn shell ?????????ǤϤ????ޤ?????
???Υ??????ˤϡ?POSIX
?ǵ??ꤵ?줿???ͤȤ????Ĥ??? Berkeley
??ĥ?Τߤ? ?????????????Ƥ??ޤ???
?ܥޥ˥奢???ϡ?shell
?Υ??塼?ȥꥢ???Ǥ?
?????ޤ??????ͤ??????˵??Ҥ??????ΤǤ⤢???ޤ?????
???????ϡ??ե??????ޤ???ü?????? 1
?Ԥ????ɤ߹??ߡ??????????ᤷ??
???ޥ??ɤ??¹Ԥ??ޤ??????????ϥ桼?????????ƥ??˥????????Ȥ??˵?ư
???????ץ????????Ǥ? (?????????桼????
chsh(1)
???ޥ??ɤˤ??ä?¾?Υ??????????뤳?Ȥ??Ǥ??ޤ?)??
???????ϡ????湽ʸ?????ĸ????Ǥ??ꡢ
?ǡ??????????Ϥ????Ȥ???¿?ͤʵ?ǽ???????ޥ?????ǽ??
?ҥ??ȥꡢ???Խ???ǽ????¢???Ƥ??ޤ???
???Υ???????????Ū?˻Ȥ??Ȥ????????ʵ?ǽ??¿???Ȥ??????Ƥ??ꡢ
????Ū???Ѥ????Ȥ?????????Ū??
(?????륹?????ץȤȤ???)
?Ѥ????Ȥ??⡢
???̤Υ??ץ???????Ѥ??뤳?Ȥ??Ǥ??????????????ޤ???
???ʤ????????ޥ???̾??????ľ?ܥ????פ???
???Ȥ⡢???ޥ???̾???ե??????˽Ƥ????Ƥ??Υե???????????
ľ?ܼ¹Ԥ????뤳?Ȥ??Ǥ??ޤ???
??????Ϳ?????줺?????ĥ???????ɸ?????Ϥ?ü???ξ???
(?ޤ??? -i
?ե饰??????
???줿????)??????????????Ū??ư??ޤ???????Ū???????ϡ??̾???ޥ???
???ϻ??˥ץ????ץȤ?ɽ??????ʸˡŪ?ʥ??顼?ȥ??ޥ??ɥ??顼??
?ۤʤä???ˡ?ǽ??????ޤ?
(???Ҥ??ޤ?)?? ??ư???ˡ????????? 0
???ܤΰ????????ޤ????⤷???줬
?ޥ??ʥ????? (-
)
?ǻϤޤäƤ????ʤ顢???????ϥ??????????Ȥ???
ư??ޤ????桼?????????ƥ??˥????????????ϼ?ưŪ?ˤ??ξ?????
?ʤ??ޤ??????????????ϡ??ޤ?
(?ʲ??γƥե????뤬¸?ߤ???????)??
/etc/profile ?ȼ???
.profile
?ե????뤫?饳?ޥ??ɤ??ɤ߹??ߤޤ???
?????뵯ư???ˡ??⤷???ϥ???????????
.profile ???¹????˴Ķ??ѿ?
ENV
?????ꤵ???Ƥ????ʤ顢???????ϡ????μ??˴Ķ??ѿ?
ENV
?Ǽ????줿?ե????뤫?饳?ޥ??ɤ??ɤ߹??ߤޤ???
?Ĥޤꡢ?桼???ϥ??????????ˤΤ¹Ԥ????????ޥ??ɤ?
.profile
?˽??????뤬??ư?????뤿?Ӥ˼¹Ԥ????????ޥ??ɤ??Ķ??ѿ?
ENV
?Ǽ????ե??????˽??Ȥˤʤ??ޤ???
?Ķ??ѿ? ENV
?????ꤹ???ˤϡ??ۡ????ǥ??쥯?ȥ겼?Υե?????
.profile
?˰ʲ??Τ褦?˵??Ҥ??ޤ??? ??????
.shinit
?Τ??????˹?????̾???????ꤹ?뤳?Ȥ??Ǥ??ޤ???
ENV=$HOME/.shinit; export
ENV
???ޥ??ɥ饤???????ǻ??ꤵ?줿???ץ??????ʳ??κǽ??Τ??Τ???????
???ޥ??ɤ??ɤ߹????٤??ե?????
(?????륹?????ץ?) ??̾???Ǥ????Ȳ??ᤷ??
?????ʸ??ΰ????ϥ??????ΰ??֥ѥ????
($1, $2, ...) ?????ꤷ?ޤ???
?????ʳ??ξ??硢???????ϥ??ޥ??ɤ?ɸ?????Ϥ????ɤ߹??ߤޤ???
?Ť??С????????? sh
?Ȥϰۤʤꡢ?Ķ??ѿ?
ENV
?ǻ??ꤷ?????????ץȤ??¹Ԥ??????Τϡ?????Ū???????θƤӽФ????ΤߤǤ???
?????ˤ??ꡢ?????ø??˽줿
ENV
???????ץȤ˵??????롢??ñ?˿??????Τˤ????뤳?Ȥ?¿??ͭ̾??
?????????ƥ??ۡ??뤬?դ????줿???Ȥˤʤ??ޤ???
sh
?? 1
ʸ???????ʤ륪?ץ??????Ϥ??줾???б?????Ĺ??̾???????äƤ??ޤ???
?????? -c
?? -/+o
???㳰?Ǥ???
???β????Ǥϡ?Ĺ??̾????ñ??ʸ?????ץ????????٤˼??????Ƥ??ޤ???
???륪?ץ???????Ĺ??̾???ϡ?
sh
?? -/+o
???ץ??????ؤΰ????Ȥ??ƻ?????ǽ?Ǥ???
?????뤬??ư?????Ƥ????ϡ?
???ץ???????Ĺ??̾???? set
?Ȥ߹??ߥ??ޥ??? (???Ҥ?
?Ȥ߹??ߥ??ޥ???
??????) ?? -/+o
???ץ??????ؤΰ????Ȥ??ƻ?????ǽ?Ǥ???
?ޥ??ʥ????? (-
)
?ǥ??ץ??????????ꤹ?뤳?Ȥϡ????Υ??ץ???????ͭ???ˤ??뤳?Ȥ???̣????
?ץ饹???? (+
)
?ǥ??ץ??????????ꤹ?뤳?Ȥϡ????Υ??ץ???????̵???ˤ??뤳?Ȥ???̣???ޤ???
“--
”
?ޤ??ϡ?ñ?ʤ?
“-
”
?ϥ??ץ?????????????λ??????
???ޥ??ɥ饤???λĤ??θ????????Ȥ??Ʋ??᤹?뤳?Ȥ????????ޤ???
-/+o
?? -c
?Υ??ץ???????Ĺ??̾?????????ޤ?????
-a
allexport
- ?ͤ????????줿?Ȥ????ѿ??????ݡ??Ȥ????褦???ѿ??˥ե饰???դ??ޤ???
-b
notify
- ?Хå????饦???ɥ????ּ¹Ԥδ?λ???ޥ??ɤ??¹????Ǥ?¨?¤????𤷤?
?? (̤?????Ǥ?)??
-C
noclobber
- ???Ǥ?¸?ߤ????ե???????
“
>
”
???????쥯?ȤǾ????ޤ?????
-E
emacs
- ?Ȥ߹??ߤ?
emacs(1)
???Υ??ޥ??ɹ??Խ???ǽ??ͭ???ˤ??ޤ?
(??????????
-V
???ץ??????ꤵ???Ƥ??????硢??????̵???ˤ??ޤ?)??
-e
errexit
- ?????å⡼?ɤǡ??ƥ??Ⱦ??֤ˤʤ????ޥ??ɤμ¹Ԥ˼??Ԥ??????硢
ľ???˥?????????λ???ޤ???
???ޥ??ɤϡ?if, elif, while, until ??ʸ??
???椹???Τ??Ѥ??????Ƥ????????ˡ??ƥ??Ⱦ??֤Ǥ????Ȥߤʤ????ޤ???
?ޤ??? “
&&
” ??
“||
”
?κ????ͤȤ????Ѥ??????Ƥ??륳?ޥ??ɤ⡢?ƥ??Ⱦ??֤Ȥߤʤ????ޤ???
-f
noglob
- ?ѥ?̾Ÿ?????Ԥ??ޤ?????
-I
ignoreeof
- ????Ū???????ξ??硢???Ϥ?
EOF
??̵?뤷?ޤ???
-i
interactive
- ?????뤬????Ū??ư????褦?˶??????ޤ???
-m
monitor
- ??????????????ǽ?ˤ??ޤ?
(????Ū???????ξ????ϼ?ưŪ?????ꤵ???ޤ?)??
-n
noexec
- ??????Ū???????ξ??硢???ޥ??ɤ??ɤ߹??ߤޤ????????Υ??ޥ??ɤμ¹Ԥ?
???ޤ??????륹?????ץȤ?ʸˡ?????????????????Ǥ???
-P
physical
cd
??
pwd
???ޥ??ɤˤ??????ǥե????Ȥ?
-L
(????Ū?ʥǥ??쥯?ȥ??쥤??????) ????
-P
(ʪ??Ū?ʥǥ??쥯?ȥ??쥤??????)
???ѹ????ޤ???
-p
privileged
- ?ø??⡼?ɤ?ͭ???ˤ??ޤ???
??ư???˼¸??桼?? ID
???뤤?ϼ¸????롼?? ID ?????¥桼?? ID
???¥??롼 ?? ID
?Ȱ??פ??Ƥ??ʤ????С????Υ⡼?ɤ?ͭ???ˤʤ??ޤ??????Υ⡼?ɤ?̵
?????????ȡ??¸??桼?? ID
?????Ӽ¸????롼?? ID ?ϡ??¥桼?? ID
?????? ?¥??롼?? ID ?????ꤵ???ޤ???
????Ū???????Ǥ??Υ⡼?ɤ?ͭ???ˤʤäƤ????ȡ?
/etc/profile ?θ???
~/.profile ???????ꡢ
/etc/suid_profile
???ɤ߹??ߤޤ??????????Ķ??ѿ?
ENV
?????Ƥ?̵?뤵???ޤ???
-s
stdin
- ???ޥ??ɤ?ɸ?????Ϥ????ɤ߹??ߤޤ?
(?????ǥե?????̾?????ꤵ???Ƥ??ʤ?
?????ˤϡ????Υ??ץ?????ưŪ?????ꤵ???ޤ?)??
?????뤬?¹Ԥ????Ƥ????ܥ??ץ??????? (
set
?ʤɤˤ??ä?)
???ꤷ?Ƥ????̤Ϥ????ޤ?????
-T
trapsasync
- ?Ҥ??ԤĤȤ???¨?¤˥ȥ??åפ??¹Ԥ??ޤ???
?ܥ??ץ??????????ꤵ???Ƥ??ʤ??ȡ?
IEEE Std 1003.2 (“POSIX.2”)
?ǻ??ꤵ???Ƥ????褦?ˡ??Ҥ???λ???????˥ȥ??åפ??¹Ԥ????ޤ???
??????ɸ?४?ץ??????ϡ?
?????ʥ????֥??å??????Ҥμ??Ϥ??ݸ???????֤???????ͭ?ѤǤ???
???ϤΥ??????ϻҤ????ꡢ
???Τ褦?ˡ??????? tty
???ᤷ?ƻҤ??????Ĥ??????Ǥ??ޤ?:
sh -T -c "trap 'exit 1' 2 ; some-blocking-program"
-u
nounset
- ?ͤ????ꤵ???Ƥ??ʤ??ѿ???Ÿ?????褦?Ȥ??????硢
ɸ?२?顼???Ϥ˥??顼???å??????????Ϥ???
????????????Ū???????ʤ??С????????˥?????????λ???ޤ???
-V
vi
- ?Ȥ߹??ߤ?
vi(1)
???ι??Խ???ǽ??ͭ???ˤ??ޤ?
(??????????
-E
???ץ??????ꤵ???Ƥ??????硢??????̵???ˤʤ??ޤ?)??
-v
verbose
- ???Ϥ??ɤ߹??ऴ?Ȥ?ɸ?२?顼???Ϥ˽Ф??ޤ????ǥХå??ΤȤ????????Ǥ???
-x
xtrace
- ?ƥ??ޥ??ɤ??¹Ԥ??????ˡ????Υ??ޥ??ɤ?ɸ?२?顼???Ϥ?
(?ƥ??ޥ??ɤ? ???? “
+
” ???ղä???)
?Ф??ޤ????ǥХå??ΤȤ????????Ǥ???
-c
???ץ??????ϡ????????????ϤȤ??Ʋ??ᤵ????ʸ???????????Ϥ??????˻??Ѳ?ǽ?Ǥ???
???Υ??ץ??????ϰ????Ȥ???ʸ?????????Ĥ??????????뤳?Ȥ????դ??Ʋ???????
?Ǥ????顢ʣ????ñ?줫???ʤ?ʸ?????ϰ??????ǰϤ?ɬ?פ??????ޤ???
-/+o
???ץ??????ϡ????ץ???????Ĺ??̾???Τߤ??????Ȥ??ƤȤꡢ
???ץ???????ͭ??????̵???????Ԥ??ޤ???
?㤨?С????? 2 ?Ĥ? sh
??ư??ˡ?Ǥ??Ȥ߹??ߤ?
emacs(1)
???ޥ??ɥ饤?ǥ?????ͭ???????ޤ?:
-o
???ץ????????ʤ??ǻ??Ѥ??줿???硢
???ߤΥ??ץ????????????ͤ??ɤ?????????ɽ?????ޤ???
+o
???????ʤ??ǻ??Ѥ??줿?????ϡ????ߤΥ??ץ???????????
???????غ????Ϥ????Τ?Ŭ?????????ǽ??Ϥ??ޤ???
???????ϡ??ե?????????ñ?̤??ɤ߹??ߡ?????ʸ??
(?֥??????ӥ???) ??
???????ˤȤä????̤ʰ?̣????????????ʸ????
( “?黻??”
?ȸƤФ??????ΤǤ?)
?????ڤ??Ȥ??ơ?ʣ????ñ????ʬ?䤷?ޤ????黻?Ҥˤϡ??????黻?Ҥȥ?
?????쥯?ȱ黻?Ҥ? 2 ???ब?????ޤ?
(???????ΰ?̣?ˤĤ??Ƥϸ??Ҥ??ޤ?)??
?ʲ??ˡ????????ΰ??????ޤ???
- ?????黻??:
-
- ???????쥯?ȱ黻??:
-
???Ѥϡ??ü??ʰ?̣??????ʸ????ñ??
(?黻?ҡ?????????ɤʤ?)
?ΰ?̣
???Ǥ??ä????????Ѥ??ޤ??????Ѥˤϡ????륯??????ʸ???Υڥ????Ȥ???ˡ??
???֥륯??????ʸ???Υڥ????Ȥ???ˡ???Хå??????å???ʸ?????Ȥ???ˡ
?? 3 ???ब?????ޤ???
- ???륯??????ʸ??
- ???륯?????ȤΥڥ??ǰϤޤ줿ʸ???ϡ????٤Ƥ???ʸ?????Τޤ?
(???ƥ???) ?Ȥ??ư??????ޤ?
(?????????륯?????Ȥ??̤Ǥ??????륯??????
?ǰϤä?ʸ?????????˥??륯?????Ȥ??ޤ??뤳?ȤϤǤ??ޤ???)??
- ???֥륯??????ʸ??
- ???֥륯?????ȤΥڥ??ǰϤޤ줿ʸ???ϡ??ɥ뵭??ʸ??
(
$
) ???Хå?????????ʸ??
(`
) ???Хå??????å???ʸ??
(\
)
???????????٤ƥ??ƥ????Ȥ??ư??????ޤ???
???֥륯??????ʸ???ˤ??????Ѥ????ˤ????Хå??????å???ʸ???ϡ?????
Ū?аޤˤ??ꤹ?????Ѥ??ä????????????ޤ???
????ʸ???????ˤ????????ϥ??????Ȥˤʤ??ޤ?????
?????ʳ??Ǥϥ??ƥ????ΤޤޤȤʤ??ޤ?:
- ?Хå??????å???
- ?Хå??????å????ϡ????θ????? 1
ʸ?????ƥ????Ȥ??ư????褦?˻ؼ?
???ޤ?????????????ʸ?? (
\n
)
???̤Ǥ???????ʸ????ľ???ΥХå??????å????ϡ???
?η?³?Ǥ????Ȥߤʤ????ޤ???
ͽ????
ͽ?????ϥ??????ˤȤä????̤ʰ?̣??????ñ???ǡ??Ԥ???Ƭ?ޤ????????黻??
??ľ???ǤΤ?ͽ?????Ȥ???ǧ???????ޤ????ʲ???ͽ?????ΰ??????ޤ???
?????ꥢ???ϡ?̾???Ȥ??????б??????ͤ??Фˤʤä????Τǡ?
?Ȥ߹??ߥ??ޥ??? alias
?ˤ??ä??????????ޤ???
???????ϡ?ͽ???줬????????ǽ????????????
(?嵭??) ?ǡ?
????ñ?????Ф??ơ????줬ͽ???줫?ɤ????θ??????Ѥޤ????Τ???
???줬?????ꥢ???˰??פ??뤫?ɤ????????ޤ???
?⤷???פ????ʤ??С????ϹԤ????ǡ?????ñ?????ꥢ?????ͤ??֤??????ޤ???
???Ȥ??С? “lf
”
?Ȥ???̾???? “ls -F
”
?Ȥ????ͤ????ĥ????ꥢ????
¸?ߤ????Ȥ????ȡ????????Ϲ?
?ϡ??ʲ??Τ褦???ִ??????ޤ???
?????ꥢ???ϡ??鿴?Ԥ??Ф????????դ??δؿ??????????????ݤ??????뤳?Ȥʤ???
û?????ޥ??ɤ??????Ф?????????ˡ?????????ΤǤ???
??????????ʸŪ?ˤ????ޤ??ʥ????ɤ??????Ф????Ȥˤ??Ĥʤ??꤫?ͤޤ?????
???Τ褦?ʻȤ????Ϥ??????Ǥ??ޤ?????
???????ϡ??ɤ߹?????ñ??????ʸˡ?˽??äƲ??ᤷ?ޤ???
?ܥޥ˥奢???Ǥ?ʸˡ?ˤĤ??Ƥϲ??⤷?ޤ?????
IEEE Std 1003.2 (“POSIX.2”) ?? BNF
ɽ???Ȥ??Ƥ??????????פ????ˡ??Ԥ?
1 ?Ԥ??ɤ߹??ߡ??ɤ߹?????
?Ԥκǽ???ñ??
(?????黻?Ҥ??????????ϡ????Τ??Ȥκǽ???ñ??)
??ͽ????
?Ǥʤ????硢???????Ϥ??ιԤ?ñ?㥳?ޥ??ɤȤ??Ʋ??ᤷ?ޤ????????ʳ??ξ?
?硢ʣ?祳?ޥ??ɤ??뤤???ü칽¤?Ǥ????Ȳ??ᤷ?ޤ???
ñ?㥳?ޥ???
ñ?㥳?ޥ??ɤ????᤹?????硢???????ϰʲ??Τ褦??ư???ޤ???
- ñ???????ˤ???
“
name=value
”
?η?????ñ??????????????
ñ?㥳?ޥ??ɤδĶ??????????ޤ???
???????쥯?ȱ黻?ҤȤ??ΰ??? (????)
????????????
???Ȥǽ????Ǥ????褦????¸???ޤ???
- ?Ĥä?ñ??????
ñ??Ÿ??
????????????????ˡ??Ÿ?????ޤ???
Ÿ?????κǽ???ñ???ޥ???̾?Ȥߤʤ??????ޥ??ɤΰ??֤?õ?????ޤ???
?Ĥ???ñ???ϥ??ޥ??ɤؤΰ????Ȥߤʤ????ޤ???
?????η??̡????ޥ???̾???Ĥ??ʤ??ä????硢????
1) ?? ?????Ф??? “
name=value
”
???ѿ????????ߤΥ??????δĶ???ȿ?Ǥ??ޤ???
- ????????????????ˡ?ǡ????????쥯?Ȥ??Ԥ??ޤ???
???????쥯?Ȥϡ????ޥ??ɤ??ɤ????????Ϥ??뤫???ɤ??ؽ??Ϥ??뤫??
?ѹ??????Ȥ????Ѥ??ޤ???
???̤ˤϡ????????쥯?ȤǤϡ??ե??????Υ????ץ??????????ޤ???
?ե??????ؤλ??Ȥ?ʣ?? (duplicate)
???Ԥ??ޤ???
???????쥯?Ȥ??Ѥ???????????Ū?ʷ????ϡ??ʲ??ΤȤ????Ǥ???
[n] redir-op file
?????ǡ? ‘redir-op
’
?????Ҥ??????????쥯?ȱ黻?ҤΤ????줫?Ǥ???
???????α黻?Ҥ??ɤΤ褦?????Ѥ??뤫???????Ĥ??ʲ??˵ޤ???
[n]>
file
- ɸ?????? (?ޤ??ϥե????뵭?һ? n) ??
file ?˥??????쥯?Ȥ??ޤ?
[n]>|
file
- ????Ʊ?͡???????
-C
???ץ??????θ??̤??Ǥ??ä??ޤ???
[n]>>
file
- ɸ?????? (?ޤ??ϥե????뵭?һ? n) ??
file ???ɲä??ޤ???
[n]<
file
- ɸ?????? (?ޤ??ϥե????뵭?һ? n) ??
file ???????????쥯?Ȥ??ޤ???
[n]<>
file
- ɸ?????? (?ޤ??ϥե????뵭?һ? n) ??
file ????/?ء????????쥯?Ȥ??ޤ???
[n1]<&n2
- ?ե????뵭?һ? n2 ??ɸ??????
(?ޤ??ϥե????뵭?һ? n1)
??ʣ?????ޤ???
[n]<&-
- ɸ?????? (?ޤ??ϥե????뵭?һ? n)
?????????ޤ???
[n1]>&n2
- ɸ?????? (?ޤ??ϥե????뵭?һ? n1)
???ե????뵭?һ? n2 ??ʣ?????ޤ??? (????:
?̾??ϡ֥ե????뵭?һ? n2
??ɸ?????? (?ޤ??ϥե????뵭?һ? n1) ??
ʣ???פ?ɽ?????ޤ???
???̤ϡ?ɸ?????? (?ޤ??? n1 ?ؤν???)
?? n2 ?ؤΥ??????쥯?ȤǤ???)
[n]>&-
- ɸ?????? (?ޤ??? n) ?????????ޤ???
?ʲ??Υ??????쥯?Ȥϡ????Ф???
“?ҥ????ɥ????????? (here-document)” ??
?ƤФ??ޤ???
[n]<< delimiter
here-doc-text
...
delimiter
???????ϡ?delimiter
?ޤǤιԤ???¸???????ޥ??ɤؤ?ɸ?????Ϥޤ??ϥե???
?뵭?һ? n
?˥??????쥯?Ȥ??ޤ????ǽ??ιԤ?
delimiter ?????? (????????) ?????Ƥ??????硢here-doc-text
?????Ƥ????ƥ????Ȥ??ư????ޤ???
?????Ǥʤ????硢?ѥ????Ÿ???????ޥ????ִ??????ͱ黻
( ñ??Ÿ?? ??????
???????ޤ?) ??Ŭ?Ѥ??ޤ????黻?Ҥ? (
“<<
” ?Ǥʤ?)
“<<-
” ?ξ????ϡ?
here-doc-text
?γƹԤι?Ƭ?Υ??֤??????????ޤ???
???ޥ??ɤˤϡ????????ؿ????Ȥ߹??ߥ??ޥ??ɡ??̾??ץ?????????
3 ???ब???ꡢ
???ޥ??ɤ??????ݤˤϡ?????????̾???θ????ν????ǹԤ??ޤ???
3
?????Υ??ޥ??ɤϰۤʤ???ˡ?Ǽ¹Ԥ????ޤ???
???????ؿ????¹Ԥ????Ȥ???$0
?????????٤Ƥΰ??֥ѥ???? ($1, $2,..)
?????ؿ??ؤΰ????Ȥ??????ꤷ?ޤ???$0
???ѹ??????ޤ????????ؿ?
?δĶ??Ȥ??ƻ??ꤵ?줿?ѿ?
(?ؿ?̾??ľ???? “name=value”
???֤??ƻ??? ???줿????)
?ϡ????δؿ??˶ɽ?Ū???ѿ??Ȥʤꡢ???ꤵ?줿?????ͤ????ꤵ
???ޤ????????ơ????????ϴؿ???????Ϳ?????줿???ޥ??ɤ??¹Ԥ??ޤ???????
???ɤμ¹Ԥ???λ?????ȡ????֥ѥ???????ͤ??ᤷ?ޤ????????????Ƹ?
?ߤΥ??????????ǽ????????ޤ???
?????????Ȥ߹??ߥ??ޥ??ɤϡ??????ʥץ????????????????˥??????????Ǽ¹Ԥ????ޤ???
???ޥ??ɤ??ؿ??Ǥ??Ȥ߹??ߥ??ޥ??ɤǤ??ʤ??????ϡ??̾??Υץ????????Ȥߤʤ?
(???????????????Ȥ???)
?ե????륷???ƥ??????Ǥ??Υ??ޥ??ɤ????ޤ???
?̾??Υץ??????????¹Ԥ??????硢???????ϰ?????
?Ķ????ץ??????????Ϥ??ơ????Υץ??????????¹Ԥ??ޤ???
?ץ??????ब?̾??μ¹ԥե??????????ǤϤʤ?????
(?Ĥޤꡢ ASCII ɽ???? "#!"
?Ȥʤ? "?ޥ??å??ʥ???"
?ǥե????뤬?ϤޤäƤ??餺??
execve(2)
?? ENOEXEC
???֤?????)??
???֥??????????Ǥ??Υץ??????????????¹Ԥ??ޤ??????ξ??硢???????⿷????
?????뤬??ư???줿???Τ褦?ʸ??̤????뤿???ˡ??ҥ??????ϼ?ʬ???Ȥ?
?ƽ????????ޤ????????????ҥץ??????ϡ??ƥ????????Υϥå??夵?줿???ޥ???
???־??????Ƥ??ꡢ?????Ϻƽ??????????ޤ?????
?ܥɥ????????ȤθŤ??С??????????Ť????????????ɤǤϡ??Ȥ????ꡢ
?ޥ??å??ʥ??ФΤʤ??????륹?????ץȤΤ??Ȥ?
"????????³??" ?ȸƤ??Ǥ??ơ?
?ޤ????路?????礬?????ޤ??Τ????դ??Ʋ???????
?ѥ?????
???ޥ??ɤ??????Ȥ??????????ϡ??ޤ???????̾???Υ??????ؿ??????뤫?ɤ?????
Ĵ?٤ޤ??????ˡ?????̾?????Ȥ߹??ߥ??ޥ??ɤ????뤫?ɤ?????Ĵ?٤ޤ???
?Ȥ߹??ߥ??ޥ??ɤǤ??ʤ????硢?ʲ??Τ????줫?ν??????Ԥ????ޤ?:
- ???ޥ???̾?˥????å??夬?ޤޤ??Ƥ????С??????ϹԤ鷺??
ñ?ˤ??Υ??ޥ??ɤ??¹Ԥ????ޤ???
- ?ѿ?
PATH
?˴ޤޤ????ƥ????ȥ????Ф??ơ????ˤ??Υ??ޥ??ɤ????ޤ???
?ѿ? PATH
???ͤϥ??????Ƕ??ڤ??줿?????ȥ??????Ǥʤ????Фʤ??ޤ?????
?ƥ????ȥ??ϡ????줾???ǥ??쥯?ȥ?̾???Ĥ??б????ޤ???
???????ȥǥ??쥯?ȥ??ϡ?
???Υǥ??쥯?ȥ?̾?????ꤹ?뤳?Ȥǰ???Ū?ˡ?
???뤤?? 1
?ĤΥԥꥪ?ɤ????ꤹ?뤳?Ȥ?????Ū??
?ؼ????뤳?Ȥ??Ǥ??ޤ???
?ƥ??ޥ??ɤϽ?λ???ơ??????????????????ˤ???¾?Υ????륳?ޥ??ɤ?ư????
?ƶ???Ϳ???뤳?Ȥ??Ǥ??ޤ???????Ū?ʹͤ????Ȥ??ơ???λ???ơ?????
0 ?? ?̾??ν?λ?ޤ??????????ޤ???0
?ʳ??ν?λ???ơ??????ϼ??ԡ????顼??
??̣???ޤ????ƥ??ޥ??ɤΥޥ˥奢???ˤ??줾???ν?λ???ơ????????ɤΤ褦
?ʰ?̣?????Ĥ??????Ҥ????Ƥ????Ϥ??Ǥ????Ȥ߹??ߥ??ޥ??ɤ?
(?¹Ԥ??줿)
?ؿ??⽪λ???ơ????????֤??ޤ???
???ޥ??ɤ??????ʥ??ˤ??꽪λ
(terminate) ???????줿???硢 ??λ???ơ??????? 128
?˥????ʥ??ֹ????ä??????Τˤʤ??ޤ???
?????ʥ??ֹ??ϥإå??ե?????
<sys/signal.h>
???????????Ƥ??ޤ???
ʣ?祳?ޥ??? (Complex Commands)
ʣ?祳?ޥ??ɤϡ?ñ?㥳?ޥ??ɤ??Ȥ߹??碌?Ǻ????ޤ???
?????黻?Ҥޤ???ͽ???????Ȥ߹??碌?뤳?Ȥǡ??????礭??ʣ?祳?ޥ??ɤ???
?????ޤ??????̤ˡ????ޥ??ɤϰʲ??Τ????Τ????줫?Ǥ???
- ñ?㥳?ޥ???
- ?ѥ??ץ饤??
- ?ꥹ?Ȥޤ??Ϲ????ꥹ?? (compound-list)
- ???????ޥ??? (compound command)
- ?ؿ?????
?ä˻????Τʤ????硢???ޥ??ɤν?λ???ơ??????ϺǸ??˼¹Ԥ??줿
ñ?㥳?ޥ??ɤν?λ???ơ??????Ȥʤ??ޤ???
?ѥ??ץ饤??
?ѥ??ץ饤???ϡ?ʣ???Υ??ޥ??ɤ??????黻??
`|' ?ˤ??äƤĤʤ??????ΤǤ???
?Ǹ??Υ??ޥ??ɤ????????٤ƤΥ??ޥ??ɤ?ɸ?????Ϥϡ????Υ??ޥ??ɤ?ɸ?????Ϥ?
??³?????ޤ???
?Ǹ??Υ??ޥ??ɤ?ɸ?????Ϥϡ??̾??̤ꡢ?????뤫???????Ѥ????ޤ???
?ѥ??ץ饤???η????ϼ??ΤȤ????Ǥ???
[!] command1 [| command2
...]
command1 ??ɸ?????Ϥ? command2
??ɸ?????Ϥ???³?????ޤ??????ޥ??ɤ?ɸ
???????Ϥ??ѥ??ץ饤???ˤ??äƳ??????Ƥ??????Τϡ??ƥ??ޥ??ɤ?°????
???????쥯?ȱ黻?Ҥǻ??ꤵ?줿???????쥯?Ȥ????????????Τ??Ȥ??ȹͤ???
????????
?ѥ??ץ饤?Хå????饦????
(????) ?Ǥʤ????С????????Ϥ??٤Ƥ?
???ޥ??ɤ???λ?????Τ??Ԥ??ޤ???
?ѥ??ץ饤????ľ????ͽ????
!
???֤????ʤ??ä????硢??λ???ơ???????
?ѥ??ץ饤???κǸ??Υ??ޥ??ɤν?λ???ơ??????Ȥʤ??ޤ???
`!'
?????֤??줿???硢??λ???ơ??????ϥѥ??ץ饤???κǸ??Υ??ޥ??ɤ?
??λ???ơ????????????????????ä??ͤȤʤ??ޤ???
???ʤ??????Ǹ??Υ??ޥ??ɤ? 0
???֤??????硢?ѥ??ץ饤????
??λ???ơ??????? 1
?ˡ??Ǹ??Υ??ޥ??ɤ? 0
?????礭???ͤ??֤??????硢
??λ???ơ??????? 0 ?ˤʤ??ޤ???
?ѥ??ץ饤???ˤ???ɸ???????Ϥ???³?ϥ??????쥯?Ȥ???Ω?äƹԤ????뤿?ᡢ
?ѥ??ץ饤??????³?????????쥯?Ȥˤ??äƽ??????뤳?Ȥ??Ǥ??ޤ??????Ȥ??С?
$ command1 2>&1 |
command2
‘command1
’
??ɸ?????Ϥ?ɸ?२?顼???Ϥ?ξ????
‘command2
’ ??ɸ?????Ϥ?
??³???ޤ???
“;
”
?ޤ??ϲ???ʸ??????ü?Ȥ????Ѥ??뤳?Ȥˤ??ꡢľ????
AND-OR ?ꥹ?? (
û???ꥹ?ȱ黻??
?Ǹ???) ???缡?¹Ԥ??ޤ???
“&
” ?ϡ?ľ???? AND-OR
?ꥹ?Ȥ???Ʊ???˼¹Ԥ??ޤ???
??:
¾?Τ????Ĥ??Υ??????Ȱۤʤꡢ
sh
?Ǥϥѥ??ץ饤???γƥץ??????ϵ?ư????
sh
?λҥץ??????Ȥʤ??ޤ????????????Ȥ߹??ߥ??ޥ??ɤǤ???
?Ȥ????̤Ǥ??????ξ????ϸ??ߤΥ??????Ǽ¹Ԥ????ޤ?????
?Ķ????Ф????????ϱƶ???Ϳ???ޤ?????
?Хå????饦???ɥ??ޥ???
(&)
???ޥ??ɤ??????黻?ҥ????ѥ?????
(&
)
?ǽ?λ???Ƥ??????硢???????Ϥ??Υ??ޥ??ɤ?
??Ʊ???˼¹Ԥ??ޤ??????ʤ????????????Ϥ??Υ??ޥ??ɤν?λ???Ԥ????ˡ?
???Υ??ޥ??ɤμ¹ԤϤ??ޤ???
???ޥ??ɤ??Хå????饦???ɤǼ¹Ԥ????뤿???η????ϰʲ??ΤȤ????Ǥ???
command1 & [command2 & ...]
?????뤬????Ū?Ǥʤ????硢??Ʊ?????ޥ??ɤ?ɸ?????Ϥˤ?
/dev/null ?? ??³?????ޤ???
?ꥹ?? (????Ū????)
?ꥹ?Ȥ? 0
?Ĥޤ??Ϥ????ʾ??Υ??ޥ??ɤ?????ʸ???????ߥ?????ʸ????????
?ѥ?????ʸ?? (&)
?Ƕ??ڤä????Ǥ????ꥹ?Ȥϡ???????
3 ?Ĥε????Τ????줫??
??λ?????뤳?Ȥ??Ǥ??ޤ????ꥹ?????Υ??ޥ??ɤ??¤٤??줿???˼¹?
?????ޤ????⤷?????ޥ??ɤ?³???ƥ????ѥ?????ʸ?????֤????Ƥ??????硢
???????Ϥ??Υ??ޥ??ɤ???ư???????ȡ??????˼??Υ??ޥ??ɤν????Ϥ??ޤ???
????¾?ξ??硢???Υ??ޥ??ɤν?λ???ԤäƤ??鼡?Υ??ޥ??ɤν????Ϥ??ޤ???
û???ꥹ?ȱ黻?? (Short-Circuit List
Operators)
“&&
” ??
“||
” ?? AND-OR
?ꥹ?ȱ黻?ҤǤ???
“&&
”
?Ϻǽ??Υ??ޥ???
???¹Ԥ????⤷?ǽ??Υ??ޥ??ɤν?λ???ơ???????
0 ?ʤ??м??Υ??ޥ??ɤ?
?¹Ԥ??ޤ??? “||
”
??Ʊ?ͤǤ??????ǽ??Υ??ޥ??ɤν?λ???ơ???????
0
?Ǥʤ??????ˡ????Υ??ޥ??ɤ??¹Ԥ??ޤ???
“&&
” ??
“||
” ??ͥ?????̤?
Ʊ???Ǥ???
???湽¤ (if, while, for, case)
if
???ޥ??ɤ?ʸˡ?ϰʲ??ΤȤ????Ǥ???
if
list
then
list
[
elif
list
then
list] ...
[
else
list
]
fi
while
???ޥ??ɤ?ʸˡ?ϰʲ??ΤȤ????Ǥ???
while
list
do
list
done
?ǽ??Υꥹ?Ȥν?λ???ơ???????
0 ?Ǥ??뤫???ꡢ2
?ĤΥꥹ?Ȥ??֤?
?¹Ԥ??ޤ??? until
???ޥ??ɤ?Ʊ?ͤ˼¹Ԥ??ޤ?????
ñ?? while
??????????ñ??
until
???Ȥ????Ȥȡ?
?ǽ??Υꥹ?Ȥν?λ???ơ??????? 0
?ˤʤ??ޤǡ? 2
?ĤΥꥹ?Ȥ??֤??¹Ԥ??뤳?Ȥ??ۤʤ??ޤ???
for
???ޥ??ɤ?ʸˡ?ϰʲ??ΤȤ????Ǥ???
for
variable in
word
...
do
list
done
?? word ??Ÿ?????졢?ѿ? variable ?? word
?????????ꤷ?ʤ????ꥹ?Ȥ?
?????֤??¹Ԥ??ޤ??? do
??
done
?? “{
” ??
“}
”
???֤??????뤳?Ȥ??Ǥ??ޤ???
break
?? continue
???ޥ??ɤ?ʸˡ?ϰʲ??ΤȤ????Ǥ???
break
[num]
continue
[num]
break
????¦????
num ?Ĥ? for
?롼?פޤ??? while
?롼?פ???λ???ޤ??? continue
????¦???? num
?ĤΥ롼?פμ??η????֤??????????ܤ??ޤ???
???????Υ??ޥ??ɤ??Ȥ߹??ߥ??ޥ??ɤȤ??Ƽ????????Ƥ??ޤ???
case
???ޥ??ɤ?ʸˡ?ϰʲ??ΤȤ????Ǥ???
case
word in
pattern) list ;;
...
esac
pattern ?ϡ?1
?Ĥ??뤤??ʣ???Υѥ????? (???Ҥ?
???????ѥ?????
?ȤΤ???) ?? “|
”
????³???????ΤǤ???
ʣ???Υ??ޥ??ɤΥ??롼?ײ?
???ޥ??ɤϡ??ʲ??Τ????줫????ˡ?ˤ??ꥰ?롼?ײ????뤳?Ȥ??Ǥ??ޤ???
?ޤ??ϡ?
?ǽ??η????Ǥϡ????ޥ??ɤϥ??֥????????Ǽ¹Ԥ????ޤ???
???Τ??ᡢ?Ȥ߹??ߥ??ޥ??ɤϸ??ߤΥ??????ˤϱƶ???Ϳ???ʤ????Ȥ????դ??Ƥ?????????
2 ?Ĥ??η????ǤϿ????ʥ??????? fork
???ʤ??Τǡ???????Ψ???ɤ??ʤ??ޤ???
???Τ褦?ˤ???ʣ?????ޥ??ɤ롼?ײ????뤳?Ȥǡ?
????????ñ???ץ????????Ǥ??뤫?Τ褦?ˡ????????ν??Ϥ??ޤȤ???
???????쥯?Ȥ??뤳?Ȥ??Ǥ??ޤ???
{ echo -n "hello"; echo " world"; } > greeting
?ؿ?
?ؿ??????ι?ʸ?ϰʲ??ΤȤ????Ǥ???
?ؿ??????ϼ¹Բ?ǽʸ?ΰ????Ǥ????¹Ԥ??????ȡ?̾??
name ?δؿ?
?????????졢??λ???ơ??????Ȥ??? 0
???֤??ޤ???command ?? ?̾
“{
” ??
“}
”
?ǰϤޤ줿?ꥹ?ȤǤ???
local
???ޥ??ɤ??Ѥ??ƴؿ??˶ɽ?Ū???ѿ??????????뤳?Ȥ??Ǥ??ޤ???
?????ϴؿ????????κǽ???ʸ?ǹԤ??ʤ????Фʤ??ޤ???ʸ?ϼ??ΤȤ????Ǥ???
local
[variable ...] [-]
local
???ޥ??ɤϡ??Ȥ߹??ߥ??ޥ??ɤȤ??Ƽ????????Ƥ??ޤ???
?ѿ????ɽ??ѿ??ˤ??????硢?ؿ????ƤӽФ????Ķ???Ʊ??̾?????ѿ????????С?
???????ɽ??ѿ????ͤ? export??readonly
?ե饰???????Ѥ??ޤ????⤷Ʊ??̾????
?ѿ????ʤ????С??ɽ??ѿ??Ͻ????ͤ??????ޤ?????????ưŪ????????
???Ѥ??ޤ??????ʤ??????ؿ? f
?˶ɽ?Ū???ѿ? x
???????????ؿ? f ?????ؿ? g
???ƤӽФ??????硢?ؿ? g
?????Ǥ??ѿ? x
???Ф??????????????ѿ? x
?ǤϤʤ????ؿ? f
?????????줿?ѿ? x
?ؤ??????Ȥʤ??ޤ???
?ü??ѥ?????Τ????ɽ??????Ǥ????Τ?
“-
” ?????Ǥ???
“-
” ??
?ɽ??????????ȡ??ؿ????? set
???ޥ??ɤ??Ѥ??ƥ????륪?ץ???????
?ѹ????Ƥ⡢?ؿ?????λ?????Ȥ??????Υ??ץ??????ϸ????ͤ??????ޤ???
return
???ޥ??ɤ?ʸˡ?ϰʲ??ΤȤ????Ǥ???
return
[exitstatus]
?????ϸ??ߤμ¹ԥ??????פ???λ????1
?????Υͥ??Ȥ????ؿ???
?ɤ߹??ޤ줿???????ץȡ????????Υ??????顢???줾?줳?ν????֤??ޤ???
return
?ϸ??¹????δؿ?????λ?????ޤ???
return
???Ȥ߹??ߥ??ޥ??ɤȤ??Ƽ????????Ƥ??ޤ???
?ѿ??ȥѥ????
???????ϥѥ?????ν????????????Ƥ??ޤ???̾???????ĥѥ??????
?ѿ??ȸƤӤޤ??????????ϡ???ư???ˤ??٤ƤδĶ??ѿ??????ѿ??˼??????ߤޤ???
???????ѿ??ϡ????η????ˤ??ä??????Ǥ??ޤ???
?桼???????ꤹ???ѿ??ϡ??????ե??٥åȡ???????????????????
(_) ?Τ?
?????ʤ?̾????????ɬ?פ??????ޤ????ޤ????ǽ???ʸ?????????Ǥ??äƤ?
?????ޤ?????
?ѥ?????ϡ??ʲ??˼????????ޤ????ü쵭???ˤ??껲?Ȥ??뤳?Ȥ??Ǥ??ޤ???
???֥ѥ?????ϡ?0
???????ο????ˤ??äƻ??Ȥ??????ѥ?????Ǥ???????????
???֥ѥ?????ν????ͤȤ??ƥ????륹?????ץ?̾??³???????????ꤷ?ޤ???
?Ȥ߹??ߥ??ޥ??? set
?ˤ????????????õ?Ǥ??ޤ???
?ü??ѥ????
?ü??ѥ?????ϡ??ʲ??˵??ü?ʸ???Τ????줫?ˤ??껲?Ȥ?????
?ѥ?????Ǥ????ƥѥ???????ͤ?????????ʸ???θ????˼????ޤ???
*
- ???֥ѥ???? 1,2,...
??Ÿ???????ޤ??????֥륯??????ʸ??????????Ÿ??
?????????硢Ÿ?????̤ϳư??֥ѥ?????δ֤??ѿ?
IFS
????Ƭ??ʸ?? (
IFS
?????ꤵ???Ƥ??ʤ???????
⟨????ʸ??⟩ )
?Ƕ??ڤä?ñ????ʸ?????ˤʤ??ޤ???
@
- ???֥ѥ???? 1,2,...
??Ÿ???????ޤ??????֥륯?????Ȱ??Ѥ???????Ÿ??
?????????硢?ư??֥ѥ???????̡??ΰ????Ȥʤ??ޤ???
?⤷?????֥ѥ?????????ꤵ???Ƥ??ʤ??????ˤϡ?
@
??Ÿ?????̤? 0
?Ĥΰ????Ȥʤ??ޤ?
(???֥륯?????Ȱ??Ѥ??????Ǥ??äƤ?)??
???ʤ?????$1 ?? “abc” ??$2 ?? “def ghi”
?Ǥ??ä????硢 "$@
" ??
???? 2 ?Ĥΰ?????Ÿ???????ޤ???
#
- ???֥ѥ?????ο???Ÿ???????ޤ???
?
- ?Ǹ??˼¹Ԥ????ѥ??ץ饤???ν?λ???ơ???????Ÿ???????ޤ???
-
- (?ϥ??ե?) ???ߤΥ??ץ??????ե饰
(1 ʸ?????ץ?????̾???Ĥʤ???ʸ????)
??Ÿ???????ޤ?????ư???˻??ꤵ?줿???Ρ??Ȥ߹??ߥ??ޥ???
set ?ǻ??ꤷ??
???Ρ??????뤬???ۤ????ꤷ?????ΤΤ??٤Ƥ??ޤߤޤ???
$
- ??ư???줿???????Υץ????? ID
??Ÿ???????ޤ???
???֥????????ƥ???????Ʊ???ͤ??????ޤ???
!
- ???ߤΥ????뤬?Ǹ??˥Хå????饦???ɤǼ¹Ԥ??????ޥ??ɤΥץ?????
ID ??
Ÿ???????ޤ????ѥ??ץ饤???ξ??硢?ѥ??ץ饤???κǸ??Υ??ޥ??ɤ?
?ץ????? ID ?ˤʤ??ޤ???
0
- (????)
????????̾???ޤ??ϥ????륹?????ץ?̾??Ÿ???????ޤ???
ñ??Ÿ??
?????Ǥϡ?ñ?????Ф???Ŭ?Ѥ????뤵?ޤ??ޤ?Ÿ???ˤĤ??????????ޤ??????Ȥ?
?Ҥ٤??褦?ˡ????٤Ƥ?Ÿ???????٤Ƥ?ñ?????Ф???Ŭ?Ѥ??????櫓?ǤϤ????ޤ?????
ñ????ñ?????Ф???Ŭ?Ѥ??줿??????Ÿ?????ѥ????Ÿ???????ޥ????ִ???
????Ÿ???????????Ⱥ????η??̤?ñ???Υե??????ɤˤʤ??ޤ???ñ????ñ?줬
ʣ???Υե??????ɤ?ʬ?䤵??????ǽ?????????Τϡ??ե???????ʬ???ޤ???
?ѥ?̾Ÿ???ξ????????Ǥ??????ε?§??ͣ?????㳰?ϡ????֥륯??????????
?ѥ???? @
??Ÿ???Ǥ?
(????)??
ñ??Ÿ???ν????ϰʲ??ΤȤ????Ǥ???
- ??????Ÿ?????ѥ????Ÿ???????ޥ????ִ???????Ÿ??
(???????Ϥ??٤? Ʊ???˹Ԥ????ޤ?)
- ?ѿ?
IFS
???ͤ????Ǥʤ????С?(1)
?η??̤γƥե??????ɤ??Ф???
?ե???????ʬ?䤬?Ԥ?????
- ?ѥ?̾Ÿ?? (
-f
???ץ???????̵???ξ???)
- ???????Ⱥ???
ʸ?? “$
”
?ϥѥ????Ÿ???????ޥ????ִ???????ɾ?????Ԥ????ä????ˤʤ??ޤ???
???Ѥ????Ƥ??ʤ???????ʸ??
(~
)
?ǻϤޤ?ñ???ϡ???????Ÿ?????оݤˤʤ??ޤ???
??????ʸ?????饹???å???ʸ??
(/
)
?ޤ???ñ???ν?ü?ޤǤΤ??٤Ƥ?ʸ?????桼??̾
?Ȥߤʤ??졢???Υ桼???Υۡ????ǥ??쥯?ȥ????ִ??????ޤ????⤷?桼??̾??
??ά???줿???? (???Ȥ???
~/foobar)????????ʸ?????ѿ? HOME ????
(???ߤΥ桼???Υۡ????ǥ??쥯?ȥ?)
???ִ??????ޤ???
?ѥ????Ÿ??
?ѥ????Ÿ???η????ϰʲ??ΤȤ????Ǥ???
?????ǡ?expression ???б?????
“}
”
?ޤǤΤ??٤Ƥ?ʸ???Ǥ????б?????
“}
”
??Ĵ?٤??ݤˡ??Хå??????å???ʸ???ˤ??ꥨ???????פ??줿?ꡢ????????ʸ????
???ޤ줿 “}
”
?䡢????Ÿ???????????ޤ??Ƥ???ʸ???䡢???ޥ????ִ????ѿ?Ÿ??????
????ʸ????Ĵ?٤??оݤˤʤ??ޤ?????
?ѥ????Ÿ???η????Τ??????äȤ?ñ???ʤ??Τϰʲ??ΤȤ????Ǥ???
???Υѥ???????ͤ?¸?ߤ??????硢?????ͤ??֤??????????ޤ???
?ѥ????̾?䥷???ܥ????????? ({})
?ǰϤ??Ǥ???ޤ??????????̤ϡ?
???? 2
ʸ???ʾ夫???ʤ????֥ѥ?????ξ????䡢?ѥ????̾??ľ????
?ѥ????̾?ΰ????Ǥ????Ȥߤʤ?????ʸ????³??????????????
??ά??ǽ?Ǥ??????֥륯?????Ȱ??????Υѥ????Ÿ???ϰʲ?
?Τ褦?ˤʤ??ޤ???
- ?ѥ????Ÿ?????Ԥä????̤?ñ?????Ф??Ƥϡ??ѥ?̾Ÿ????Ŭ?Ѥ????ޤ?????
- ?ѥ???????ü??ѥ????
@
?ξ????????????ե???????ʬ????Ŭ?Ѥ????ޤ?????
?????ˡ??ʲ??η??????Ѥ??뤳?Ȥˤ??ꡢ?ѥ????Ÿ???η??̤˽??????ä???
???Ȥ??Ǥ??ޤ???
${parameter:-word}
- ?ǥե??????ͤؤ??ִ?: ?ѥ????
parameter ?????ꤵ???Ƥ??ʤ?????????
?????ľ??硢word
??Ÿ?????????̤??ִ??????ޤ????????ʤ????С??ѥ??
?? parameter ???ͤ??ִ??????ޤ???
${parameter:=word}
- ?ǥե??????ͤ?????: ?ѥ???? parameter
?????ꤵ???Ƥ??ʤ????????ͤ????ľ??硢word
??Ÿ?? ???????̤? parameter
???????????ޤ????ǽ?Ū?˥ѥ????
parameter ????
???ִ??????ޤ??????֥ѥ???????ü??ѥ?????ϡ???????ˡ?????????뤳??
?ϤǤ??ޤ?????
${parameter:?[word]}
- ???????ꤵ???Ƥ??ʤ??Ȥ??˥??顼?Ȥ???:
?ѥ???? parameter
?????ꤵ???Ƥ??ʤ????????ͤ????ľ??硢word
??Ÿ?? ???????? (word
????ά???줿?????ˤϥѥ?????????ꤵ???Ƥ??ʤ????Ȥ?ɽ??
?ǥե????ȤΥ??å?????)
??ɸ?२?顼???Ϥ˽Ф??졢
?????????? 0
?ν?λ???ơ??????ǽ?λ???ޤ???
?????ʳ??ξ??硢?ѥ???? parameter
???ͤ??ִ??????ޤ???????Ū???????ξ?????
ɬ?????⽪λ???ޤ?????
${parameter:+word}
- ?????ͤλ???: ?ѥ???? parameter
?????ꤵ???Ƥ??ʤ????????ͤ????ľ??硢?????ͤ?
?ִ??????ޤ????????ʤ????С?word
??Ÿ?????????̤??ִ??????ޤ???
?ʾ??Υѥ????Ÿ???ˤ????ơ?`:'
???Ѥ????????ϥѥ?????????ꤵ???Ƥ??ʤ?
???ޤ??϶????ͤǤ??뤳?Ȥ????????졢`:'
????ά?????ȥѥ??????
???ꤵ???Ƥ??ʤ????ȤΤߤ????ޤ???
${#parameter}
- ʸ??????Ĺ??: ?ѥ???????ͤ?
(ʸ?????Ȥ??Ƥ?)
Ĺ?????ִ??????ޤ???
?ʲ??? 4
?̤??Υѥ????Ÿ??????ʬʸ?????ڤ??Ф????????Ԥ??ޤ????ƾ???
?ˤ????ơ??ѥ???????????ɽ???ǤϤʤ????ѥ??????ޥå???ˡ
( ???????ѥ?????
?ι???) ???Ѥ??????ޤ????ѥ??????
*
?ޤ??? @
?ξ??硢Ÿ???η???
???ɤ??ʤ뤫?ϵ??ꤷ?ޤ??? (unspecified)??
?ѥ????Ÿ?????Τ????֥륯?????ȤǰϤ??Ǥ?
?ѥ??????ϰ??Ѥ????ޤ??????????̤Τʤ??ǰ??Ѥ??뤳?Ȥˤ???
?ѥ??????????Ѥ??뤳?Ȥ??Ǥ??ޤ???
${parameter%word}
- ??û???֥ѥ??????κ???: ?ޤ? word
??Ÿ?????졢???η??̤??ѥ??????Ȥ??ư????ޤ???
?ѥ???? parameter
?α????顢?ѥ??????˰??פ?????û????ʬ??????????ʸ??????
?ִ??????ޤ???
${parameter%%word}
- ??Ĺ???֥ѥ??????κ???: ?ޤ? word
??Ÿ?????졢???η??̤??ѥ??????Ȥ??ư????ޤ???
?ѥ???? parameter
?α????顢?ѥ??????˰??פ?????Ĺ????ʬ??????????ʸ??????
?ִ??????ޤ???
${parameter#word}
- ??û???֥ѥ??????κ???: ?ޤ? word
??Ÿ?????졢???η??̤??ѥ??????Ȥ??ư????ޤ???
?ѥ???? parameter
?κ????顢?ѥ??????˰??פ?????û????ʬ??????????ʸ??????
?ִ??????ޤ???
${parameter##word}
- ??Ĺ???֥ѥ??????κ???: ?ޤ? word
??Ÿ?????졢???η??̤??ѥ??????Ȥ??ư????ޤ???
?ѥ???? parameter
?κ????顢?ѥ??????˰??פ?????Ĺ????ʬ??????????ʸ??????
?ִ??????ޤ???
???ޥ????ִ??ˤ??ꡢ???ޥ???̾???Ȥޥ??ɤν??Ϥ??֤??????뤳?Ȥ??Ǥ??ޤ???
???ޥ????ִ??ϡ??ʲ??Τ褦?ˡ????ޥ???
command ???Ϥä????硢
?ޤ??ϥХå????????ȥС???????
?Ȥ????????˹Ԥ????ޤ???
???????ϡ????ޥ??? command
?֥??????δĶ??Ǽ¹Ԥ???command
??ɸ??????
?˽??Ϥ??????Τ????Ǹ??β???ʸ???????????????̤??ִ????ޤ???
?Ǹ??ʳ???
???ԤϺ??????ޤ??????????ե???????ʬ???κݤˡ?
IFS
???ͤ????ѤΤ??줫???ˤ??äƤϡ?
?????ǻĤä?????ʸ???????ɤ϶??????ִ??????뤳?Ȥ⤢???ޤ???
????Ÿ??
????Ÿ???Ȥϡ???????ɾ???????????ͤ??ִ????????ȤߤǤ???????Ÿ???η????ϰʲ?
?ΤȤ????Ǥ???
???? expression
?ϡ????????Υ??֥륯??????ʸ???????̰??????????ʤ??Ȥ???
?????????Ƥϡ????֥륯??????ʸ???ǰϤޤ??Ƥ???ʸ??????Ʊ?ͤ˰??????ޤ???
???????? expression
???Τ??٤ƤΥȡ??????˥ѥ????Ÿ???????ޥ????ִ???
???????Ⱥ?????Ŭ?Ѥ??ޤ???
???˥??????Ϥ??η??̤??????Ȥ??ư??????????ͤ??ִ????ޤ???
????ʸ???ˤ???ʬ??
(?ե???????ʬ??)
?ѥ????Ÿ???????ޥ????ִ???????Ÿ???Τ??ȡ?????????Ÿ?????̤?Ĵ?٤ơ?
???֥륯?????Ȥγ??ˤ?????ʬ???Ф??ƥե???????ʬ????Ŭ?Ѥ??ޤ???
???η??̡?ʣ???Υե??????ɤˤʤ??????⤢???ޤ???
???????ϡ??ѿ? IFS
?????ꤵ???Ƥ???ʸ?????줾?????ڤ?ʸ???Ȥߤʤ???
?ѥ????Ÿ???η??̡??????ӥ??ޥ????ִ??η??̤??ե??????ɤ?ʬ?䤷?ޤ???
?ѥ?̾Ÿ?? (?ե?????̾????)
-f
?ե饰?????ꤵ???Ƥ??ʤ????С??ե???????ʬ?䤬?Ԥ??줿???ȡ??ե?????̾????
???Ԥ????ޤ?????ñ???ϡ??????å????Ƕ??ڤ??줿?ѥ??????????Ǥ????Ȥߤʤ?
???ޤ????ѥ?̾Ÿ???????ˤ????ơ?ñ???ϡ??????????????ե?????
???٤ƤΥե?????̾???????ִ??????ޤ??????γƥե?????̾?ϡ?ñ????
?ƥѥ???????ʬ???Υѥ??????˰??פ???ʸ???????ִ????뤳?Ȥ?
?????????????ΤǤ??? ?????ˤ? 2
?Ĥ????¤??????ޤ?:
?ޤ????ѥ??????ϥ????å??????ޤ?ʸ?????ˤ?
???פ??ޤ????ˡ??ѥ??????ϡ????Υѥ????ԥꥪ?ɤǻϤޤ??ʤ??????ꡢ
?ԥꥪ?ɤǻϤޤ?ʸ?????˰??פ??ޤ?????
?????Ǥϡ??ѥ?̾Ÿ????
case
???ޥ??ɤ??Ѥ????????ѥ??????ˤĤ??????????ޤ???
?ѥ??????ϡ??̾???ʸ???ȥ?????饯???????ʤ??ޤ????̾???ʸ???ϡ?
????ʸ?????Τ??Τ˰??פ??ޤ???
??????饯???? “!
”,
“*
”,
“?
”, “[”
?Ǥ???????????ʸ????????
?????ȡ??ơ????ü??ʰ?̣???ޤ??????ޥ????ִ????ѿ??ִ??ˤ????ơ?
?ɥ뵭?????Хå?????????ʸ???????֥륯??????ʸ???????ˤʤ??????ˤϡ?
?ѿ????ͤ䥳?ޥ??ɤν??Ϥ????ˡ??????????ü???ʸ????¸?ߤ??뤫?ɤ?????
Ĵ?٤??졢?????餬?????С???????饯???Ȥ??ư??????ޤ???
???????ꥹ??ʸ?? (*
)
?ϡ??ɤΤ褦??ʸ?????Ȥ????פ??ޤ???
?????????????ޡ???ʸ?? (?
)
?ϡ?Ǥ?դ?ʸ?? 1
ʸ???Ȱ??פ??ޤ??? ???????? ([)
??ʸ?????饹?Ϥ??ޤ???
ʸ?????饹?κǸ??ϱ???????
“]
” ?Ǥ???
“]
” ???ʤ??????ϡ?
“[”
??ʸ?????Τ??Τ˰??פ???ʸ?????饹?γ??ϤȤϸ??ʤ????ޤ?????ʸ??
???饹???????????˽и????뤹?٤Ƥ?ʸ???˰??פ??ޤ???
?ޥ??ʥ????????Ѥ????С?ʸ?????ϰϤ????ꤹ?뤳?Ȥ??Ǥ??ޤ???
ʸ?????饹?κǽ??˥?????????????????ޡ???
(!
) ???֤????Ȥǡ?
ʸ?????饹?ΰ?̣??ȿž?????뤳?Ȥ??Ǥ??ޤ???
ʸ?????饹??ʸ??
“]
” ???ޤ????ˤϡ?
“]
”
??ʸ?????饹?κǽ? (
“!
”
???֤??????Ϥ??Τ???) ???֤??ޤ???
ʸ?????饹?? “-
”
???ޤ????Ȥ???Ʊ?ͤǡ?
?ꥹ?Ȥκǽ??⤷???ϺǸ????֤??ޤ???
?Ȥ߹??ߥ??ޥ???
?????Ǥϡ??̥ץ??????Ǥϼ¹ԤǤ??ʤ????????Ԥ????????Ȥ߹??ޤ??Ƥ???
???ޥ??ɤ????ޤ???
?????ˡ??Ȥ߹??ߥС?????????
test(1)
????Ψ???夲?뤿?????????Ƥ??ޤ???
:
- ??λ???ơ????? 0 (??)
???֤??̥륳?ޥ??ɤǤ???
.
file
- ???ꤵ?줿?ե????? file
?˵??Ҥ??줿???ޥ??ɤ??????????ɤ߹??ޤ졢
?¹Ԥ????ޤ???
return
???ޥ??ɤ??? .
???ޥ??ɤθƤӽФ??????֤??Τˤ??Ȥ????ޤ???
file ?? “/”
ʸ?????ޤ????硢?????̤??˰??????ޤ???
?????Ǥʤ????С????????? PATH
?????Ѥ??ơ??ե??????????ޤ???
PATH
?????Ѥ??Ƥ⸫?դ????ʤ????硢???????ȥǥ??쥯?ȥ??????ޤ???
alias
[name ...]
-
alias
[name=string ...]
- name=string
?????ꤵ???Ƥ??????硢????????̾??
name ???????? string
?Υ????ꥢ???????????ޤ???ñ??
name ?????????ꤵ?줿???硢
?????ꥢ?? name
???ͤ?ɽ???????ޤ????????????ꤵ???ʤ????硢
alias
???????????Ƥ??뤹?٤ƤΥ????ꥢ????̾?????ͤ?ɽ?????ޤ?
( unalias
?⻲??)??
?????ꥢ?????ͤ?Ŭ?ڤ˥??????Ȥ????Ƥ??ꡢ
???????غ????Ϥ????Τ?Ŭ???Ƥ??ޤ???
bg
[job ...]
- ???ꤵ?줿??????
(???ꤵ???ʤ??ä??????ϸ??ߤΥ?????)
????
³???ƥХå????饦???ɤǼ¹Ԥ????ޤ???
builtin
cmd [arg ...]
- ???ꤵ?줿?Ȥ߹??ߥ??ޥ???
cmd ???¹Ԥ??ޤ???
???????ؿ???Ʊ̾???Ȥ߹??ߥ??ޥ??ɤǥ????Х饤?ɤ???????????ͭ?ѤǤ???
bind
[-aeklrsv
] [key
[command]]
- ???Խ???ǽ?Υ????Х????ɤ?ɽ???⤷?????ѹ????ޤ???
???Υ??ޥ??ɤˤĤ??Ƥ?
editrc(5)
???????????Ƥ??ޤ???
cd
[-L
| -P
]
[directory]
- ???ꤵ?줿?ǥ??쥯?ȥ?
directory ?˰?ư???ޤ???
directory ̵????????
HOME
?ǻ??ꤵ?????ǥ??쥯?ȥ??˰?ư???ޤ???
directory ?? /,
., ..
?Τ??????ǤⳫ?Ϥ??ʤ????硢???ꤵ?줿
directory ?? CDPATH
?ѿ????Υǥ??쥯?ȥ??ꥹ?Ȥ??鸡?????ޤ???
CDPATH
?????ꤵ???Ƥ??ʤ????硢???????ȥǥ??쥯?ȥ??????ޤ???
CDPATH ?η????? PATH
??Ʊ?ͤǤ???????Ū???????Ǥϡ??桼??
?????ꤷ???ǥ??쥯?ȥ??Ȱۤʤ??????˰?ư???????硢
cd
?ϡ???ư???Υǥ??쥯?ȥ?̾??ɽ?????ޤ???
?????ϡ? CDPATH
?ε?????ư????????ȡ??????ܥ??å?????é?ä???????ȯ?????ޤ???
-P
???ץ??????ꤵ?줿???硢
..
??ʪ??Ū?˰????졢?????ܥ??å?????
..
??ʬ???????????????˲??褵???ޤ???
-L
???ץ??????ꤵ?줿?????ϡ?
.. ??????Ū?˰??????ޤ???
?????餬?ǥե????ȤˤʤäƤ??ޤ???
chdir
cd
?Ȥ߹??ߥ??ޥ??ɤ???̾?Ǥ???
command
[-p
] [utility
[argument ...]]
- ???ꤵ?줿 utility
??ñ?㥳?ޥ??ɤȤ??Ƽ¹Ԥ??ޤ?
(
ñ?㥳?ޥ???
????????????)??
-p
???ץ??????ꤵ?줿???硢???ޥ??ɸ????ϡ?
PATH
?Υǥե??????ͤ??Ѥ??ƹԤ????ޤ???
?????ˤ??????Ƥ?ɸ???桼?ƥ????ƥ??Ĥ??뤳?Ȥ??ݾڤ????ޤ???
echo
[-e
| -n
]
[string]
- string
?θ??˲???ʸ?????դ??ơ?ɸ?????Ϥ?ɽ?????ޤ???
-n
- ?Ǹ??β???ʸ???????????ޤ???
-e
- C
???ΥХå??????å??奨???????ץ??????????????ޤ???
echo
?ϼ???ʸ???????????פ????ޤ?:
- \a
- ?ٹ? (ü???٥????Ĥ餹)
- \b
- ?Хå????ڡ???
- \c
- ?Ǹ??β???ʸ???????????ޤ?
(????ʸ?????Ǹ???ʸ???Ǥʤ????硢?Ԥ??̤??Ǥ??ޤ??Ȥ????????Ѥ??????ޤ?)
- \e
- ESC ʸ?? (ASCII 0x1b)
- \f
- ?ե??????ե?????
- \n
- ????
- \r
- ????
- \t
- ??ʿ????
- \v
- ??ľ????
- \\
- ?Хå??????å???ʸ??
- \0nnn
- (???? 0 ?ϥ????Ǥ?) 8 ?ʿ??ͤ? nnn
?Ǥ???ʸ??
string
?????????Ȥdz??????Ƥ??ʤ????硢
?????뤫?饨???????פ??뤿???ˤϡ?
?Хå??????å??弫?Ȥ??Хå??????å????ǥ????????פ???ɬ?פ??????ޤ???
?㤨?м????̤??Ǥ?:
$ echo -e "a\vb"
a
b
$ echo -e a\\vb
a
b
$ echo -e "a\\b"
a\b
$ echo -e a\\\\b
a\b
-e
?? -n
???ץ??????Τ??????ɤ??餫?????Τߤ??????Ǥ??ޤ???
eval
string ...
- ???ꤵ?줿???٤Ƥΰ??????????Ƿ??礷?????η??̤????Ϥ?ľ???Ƥ???
???ޥ??ɤȤ??Ƽ¹Ԥ??ޤ???
exec
[command [arg ...]]
- command
????ά?????ʤ????硢???Υ??????ץ??????ϻ??ꤵ?줿?ץ?????????
?֤??????????ޤ? ( command
?ϡ????????Ȥ߹??ߥ??ޥ??ɤ??ؿ??ǤϤʤ?????ʪ??
?ץ????????Ǥʤ????Фʤ??ޤ???)??
exec
???ޥ??ɤˤ????????????쥯?Ȥϡ?
?ʵ????????Ĥȸ??ʤ??졢
exec
???ޥ??ɴ?λ???ˤ?????³?????Ϥ??????ޤ???
exit
[exitstatus]
- ??????????λ???ޤ??? exitstatus
?????ꤵ?줿???硢?????ϥ??????ν?λ???ơ??????ˤʤ??ޤ???
?????Ǥʤ????硢ľ???˼¹Ԥ??????ޥ??ɤ?
??λ???ơ??????????????ν?λ???ơ??????Ȥʤ??ޤ???
export
[-p
] [name ...]
- ?????ʸ??˥????뤫???¹Ԥ????륳?ޥ??ɤδĶ??ˡ????ꤵ?줿̾?????ѿ???
?ޤޤ????褦?ˤ??ޤ?
(?ѿ??Υ??????ݡ???)??
?ѿ??Υ??????ݡ??Ȥ??????ä?ͣ??????ˡ?ϡ??ѿ???
unset
???뤳?ȤǤ???
?ʲ??Τ褦?˵??Ҥ??뤳?Ȥǡ????????ݡ??Ȥ?????
Ʊ?????ѿ????ͤ????ꤹ?뤳?Ȥ??Ǥ??ޤ???
?????????ꤷ?ʤ????硢???٤ƤΥ??????ݡ??Ȥ????Ƥ???̾?????ͤ?ɽ???????ޤ???
-p
???ץ??????ꤵ?줿???硢???????ݡ??Ȥ????Ƥ????ѿ??ϡ?????????
“export
name=value”
?Ȥ?????????ɽ???????ޤ???
?????ϥ??????غ????Ϥ????Τ?Ŭ???Ƥ??ޤ???
fc
[-e
editor]
[first [last]]
-
fc
-l
[-nr
]
[first [last]]
-
fc
-s
[old=new]
[first]
fc
?Ȥ߹??ߥ??ޥ??ɤϡ?????Ū???????ˤ????????????Ϥ??줿???ޥ??ɤ????Ƥ???
ɽ?????Խ????Ƽ¹Ԥ??ޤ???
-e
editor
- ?Խ??˺ݤ??????ꤵ?줿???ǥ???
editor ?????Ѥ??ޤ???
editor ???ѿ?
PATH
???̤??Ƹ????Ǥ??륳?ޥ???̾?Ǥ???
-e
?????ꤵ???ʤ??ä??????ϡ??ѿ?
FCEDIT
???ͤ??Ѥ??????ޤ???
FCEDIT
?????ꤵ???Ƥ??ʤ??????????ꤵ???Ƥ?????????
EDITOR
???ͤ??Ѥ????졢?????????ꤵ???Ƥ??ʤ??????ʤ???
ed(1)
???Ѥ??????ޤ???
-l
(ell)
- (??ʸ???Υ???)
???ǥ???????ư?????ˡ????ޥ????????????Ƥ????????Ϥ??ޤ???
?ѥ???? first ?? last
?ǻ??ꤷ???ϰϤΥ??ޥ??ɤ?????
(???Ϥν??֤?
-r
???ץ??????αƶ????????ޤ?)
???Ϥ????ޤ???
?ƥ??ޥ??ɤν??Ϥκݤˤϥ??ޥ????ֹ椬?ղä????ޤ???
-n
-l
?ǰ??????Ϥ????ݤ˥??ޥ????ֹ????ղä??ޤ?????
-r
- ???ޥ??ɰ????? (
-l
???ץ???????????) ???Խ??? ( -l
??
-s
?????ꤵ???ʤ??ä?????)
?ν?????ȿž???ޤ???
-s
- ???ǥ???????ư?????˥??ޥ??ɤ??Ƽ¹Ԥ??ޤ???
- first
-
- last
- ???????Ϥ??Խ????оݤȤʤ륳?ޥ??ɤ????ޤ?????????????ǽ?ʥ??ޥ???
?ο????ѿ?
HISTSIZE
???ͤǷ??ޤ??ޤ??? first
?ޤ??? last
???ޤ???ξ?????ͤϡ??ʲ??Τ????줫?η????ǻ??ꤷ?ޤ???
- [+]num
- ???ο??ǡ????ޥ????ֹ??????ꤷ?ޤ??????ޥ????ֹ???
-l
???ץ???????ɽ????????Ĵ?٤뤳?Ȥ??Ǥ??ޤ???
- -num
- ???ο??ϡ? num
?Ĥ??????ߤ????̤ä????ޥ??ɤ????ꤷ?ޤ??????Ȥ??С?
-1
??ľ???˼¹Ԥ??줿???ޥ??ɤ????ꤷ?ޤ???
- string
- ʸ???? string
?ϡ??????˼¹Ԥ??줿???ޥ??ɤΤ?????
????ʸ?????Ϥޤ??ǿ??Τ??Τ????ꤷ?ޤ???
?⤷
-s
???ץ??????ꤵ????
old=new
?????ꤵ???Ƥ??ʤ????С?
?ǽ??Υ??ڥ????ɤ˥??????뵭??
???ޤ??뤳?ȤϤǤ??ޤ?????
fc
???ޥ??ɤμ¹Ԥˤ????ꡢ?ʲ??δĶ??ѿ??αƶ????????ޤ???
FCEDIT
- ???Ѥ??륨?ǥ???̾
HISTSIZE
- ??????????ǽ?ʥ??ޥ??ɿ?
fg
[job]
- ???ꤵ?줿?????? job
?ޤ??ϸ??ߤΥ????֤??ե??????饦???ɤ˰?ư???ޤ???
getopts
optstring var
- POSIX ?˽???
getopts
???ޥ??ɤǤ??? ???? getopts
???ޥ??ɤˤ??ꡢ??????
getopt(1)
???ޥ??ɤ?ɬ?????ϸ??????ޤ?????
?ǽ??ΰ?????ʸ???????Ǥ?????ʸ???θ????ˤϥ????????Ĥ??뤳?Ȥ??Ǥ???
???Υ??ץ??????????Ȥ뤳?Ȥ??ؼ????ޤ???
???ꤵ?줿?ѿ??ˡ????Ϥ??츫?Ĥ??ä????ץ??????????ꤵ???ޤ???
???Ĥ??ä????ץ??????μ??ΰ????Υ????ǥå????ϥ??????ѿ?
OPTIND
?˳?Ǽ?????ޤ???
???륪?ץ??????????Ȥ????硢???ΰ????ϥ??????ѿ?
OPTARG
???֤????ޤ???
ͭ???Ǥʤ????ץ??????˽Ф??魯?ȡ??ѿ?
var
?ˤ?
“?
”
?????åȤ????ޤ??? getopts
?ϥ??ץ?????????????ã?????ȵ????? (1)
???֤??ޤ???
hash
[-rv
] [command ...]
- ???????ϡ????ޥ??ɤΰ??֤??ݻ??????ϥå????ơ??֥????ݻ????????Ƥ??ޤ???
hash
???ޥ??ɤ˰????????ꤵ???ʤ??ä????硢???Υơ??֥??????Ƥ????Ϥ????ޤ???
?Ǹ??? cd
???ޥ??ɤ??¹Ԥ????Ƥ??黲?Ȥ????Ƥ??ʤ????ܤˤ?
???????ꥹ??ʸ?? ??ɽ???????ޤ???
???ι??ܤ?̵???ˤʤäƤ??뤫?⤷???ޤ?????
?????????ꤷ?????硢 hash
???ޥ??ɤϻ??ꤷ?? command
???ϥå????ơ??֥뤫???????? (
command
???ؿ??ǤϤʤ?????)?????θ??Ǥ??Υ??ޥ??ɤ????ޤ???
-v
???ץ??????????ꤷ?????硢
hash
??ȯ?????????ޥ??ɤΰ??֤?ɽ?????ޤ???
-r
???ץ??????????ꤷ?????硢
hash
?ϴؿ??ʳ??Τ??٤ƤΥ????ȥ????ϥå????ơ??֥뤫?????????ޤ???
jobid
[job]
- ?????? job
???γƥץ??????Υץ????? ID
??ɽ?????ޤ??????? job ??
??ά???줿???硢???ߤΥ????֤??Ф??ƽ??????Ԥ??ޤ???
jobs
[-ls
] [job ...]
- ???ꤵ?줿?????֤ξ?????ɽ?????ޤ???
job
?????????ꤵ???ʤ??ä??????ϡ????ƤΥ????֤ξ?????ɽ?????ޤ???
?????ˤϡ???????
ID?????ơ??????????ޥ???̾???ޤޤ??ޤ???
-l
???ץ??????ꤵ?줿???硢?ơ??Υ????֤?
PID ??ɽ???????ޤ??? -s
???ץ??????ꤵ?줿???硢???????˥????֤?
PID ?Τߤ?ɽ???????ޤ???
pwd
[-L
| -P
]
- ???????ȥǥ??쥯?ȥ??Υѥ???ɽ?????ޤ????Ȥ߹??ߥ??ޥ????Ǥ?
???????ȥǥ??쥯?ȥ?̾???Ф??Ƥ??ꡢɽ???????Ȥ??˺Ʒ????ʤ??Τǡ?
?Ȥ߹??ߥ??ޥ????Ǥ?Ʊ̾?Υץ????????Ȥϰۤʤä?ɽ???????礬?????ޤ???
???Τ????????Ϲ?®?Ǥ????????????ȥǥ??쥯?ȥ?
??̾?????ѹ??????????Ǥ⡢?Ȥ߹????Ǥ?
pwd(1)
?ϰ????Υǥ??쥯?ȥ?̾??ɽ????³???ޤ???
-P
???ץ??????ꤵ?줿???硢?????ܥ??å????ϲ??褵???ޤ???
-L
???ץ??????ꤵ?줿???硢???????ȥǥ??쥯?ȥ???
????????ɽ????ɽ???????ޤ?
(?????ܥ??å????ϲ??褵???ޤ???)??
?????餬?ǥե????ȤǤ???
read
[-p
prompt]
[-t
timeout]
[-er
] variable ...
-p
???ץ??????ꤵ?졢????ɸ?????Ϥ?ü???ξ??硢
prompt
???ץ????ץȤȤ???ɽ?????ޤ???
??????ɸ?????Ϥ??? 1
?????Ϥ??ޤ?????ü?β???ʸ?????????????Ԥ????Ҥ?
????ʸ???ˤ???ʬ??
(?ե???????ʬ??)
????ˡ?˽??ä?ʬ?䤷????ñ??????variable...
?ǻ??ꤹ?????ѿ??? ???????????ޤ???
?⤷?????ꤵ?줿?ѿ??ο?????ʬ?䤵?줿ñ???ο???¿?????С??Ǹ????ѿ???
?Ĥ???ñ?줹?٤? ( IFS
??ʸ???????ڤ??ˤ??Ƥ?????????????)
???????????ޤ???
ʬ?䤵?줿ñ???ο?????¿?????ѿ??????ꤵ???Ƥ????ʤ顢
;?ä??ѿ??ˤ϶?ʸ?????????ꤵ???ޤ???
-r
???ץ??????ꤵ?줿?????????????Хå??????å????????̤˰??????ޤ???
?Хå??????å???ʸ????????ʸ????ľ???ˤ??????硢
?Хå??????å???ʸ???Ȳ???ʸ???Ϻ????????ޤ???
????¾??ʸ????ľ???˥Хå??????å??夬???????硢?Хå??????å????Ϻ??????졢
ʸ???? IFS
?˴ޤޤ??Ƥ??Ƥ⡢
IFS
??ʸ???Ǥʤ????Τ褦?˰??????ޤ???
-t
???ץ??????ꤵ?졢???????Ϥ??ʤ?????????
timeout ???в᤹???ȡ?
read
???ޥ??ɤ??ͤ??????Ƥ????????ޤ???
timeout
?ͤθ??ˤϥ??ץ??????? “s”,
“m”, “h”
?Τ????줫?ΰ?ʸ??
???դ??뤳?Ȥ????衢???줾???á?ʬ?????֤??ۤ˻??ꤷ?ޤ???
?ɤ??????ꤷ?ʤ??????ˤ? “s”
?Ǥ??????ΤȤ??ޤ???
-e
???ץ??????ϡ??Ť????????ץȤȤθ????ߴ????Τ????????ˤ????ޤ???
readonly
[-p
] [name ...]
- ?ǻ??ꤵ?줿?ѿ????ɤ߽Ф????ѤȤ??????Ȥ??ͤ??ѹ???????
unset ????
?ꤹ?뤳?Ȥ??Ǥ??ʤ??褦?ˤ??ޤ????ʲ??Τ褦?˵??Ҥ??뤳?Ȥǡ?
?ѿ????ɤ߽Ф????Ѥ??????????Τ?Ʊ?????ͤ????ꤹ?뤳?Ȥ???ǽ?Ǥ???
?????????ꤵ???ʤ????硢
readonly
???ޥ??ɤϡ??ɤ߽Ф????ѤˤʤäƤ????ѿ???̾???ΰ?????ɽ?????ޤ???
-p
???ץ??????ꤵ?줿???硢?ɤ߽Ф????ѤˤʤäƤ????ѿ?????????
“readonly
name=value”
?η?????ɽ?????ޤ???
?????ϥ??????˺????Ϥ????Τ?Ŭ???Ƥ??ޤ???
set
[-/+abCEefIimnpTuVvx
] [-/+o
longname] [-c
string] [--
arg ...]
set
???ޥ??ɤ? 3
?̤??ΰۤʤä???ǽ???????ޤ???
- ?????????ꤷ?ʤ??ä????硢û?????????Ǥ?Ĺ??
“
-/+o
longname”
?Ȥ????????Ǥ??äƤ⡢
?????ꥹ?Ȥν???
???????????????Ƥ????褦?ˡ????ꤵ?줿???ץ????????????ޤ??ϥ??ꥢ???Ԥ??ޤ???
- “
--
”
???ץ??????ꤵ?줿???硢
set
?ϥ??????ΰ??֥ѥ????????³?????????֤??????ޤ???
“--
”
???ץ??????θ??˰?????³???ʤ????硢
???٤Ƥΰ??֥ѥ?????ϥ??ꥢ???졢
“shift $#
”
???ޥ??ɤ??¹Ԥ????Τ??????ˤʤ??ޤ???
?????ִ??ѥ?????Ȥ??ư????????ꤹ???Ȥ???
“--
”
?ե饰?Ͼ?ά??ǽ?Ǥ???
?????Ϥ??????Ǥ??ޤ?????
?ʤ??ʤ顢?ǽ??ΰ????ϥޥ??ʥ?????
(-
) ?ޤ??ϥץ饹????
(+
)
?dz??Ϥ??뤫?⤷???ʤ??????Ǥ???
???????ϡ? set
???ޥ??ɤ??????ץ???????ͭ?????ޤ???̵?????????Ǥ????Ȳ??ᤷ?Ƥ??ޤ??ޤ???
setvar
variable value
- ?ѿ? variable ???? value
?????????ޤ???(
setvar
?ϡ??ؿ????ǡ??ѥ?????Ȥ????Ϥ??줿̾????????
?ѿ????ͤ????????뤿???Τ??ΤǤ???
???̤ˡ? setvar
???Ȥ???????
?Ƚۤ???˾?ޤ????Ȥ????ޤ???)
shift
[n]
- ???֥ѥ?????? n
?եȤ??ޤ??? n
?????ꤷ?ʤ????? 1 ?եȤ??ޤ??? 1
???Υ??եȤˤ??ꡢ$2 ???ͤ? $1
?ˡ?$3 ?? ?ͤ? $2 ???????????ޤ?
(?ʲ?Ʊ??)???ޤ???$# ???ͤ? 1 ???????ޤ???
???֥ѥ???????ʤ????硢shift
?ϲ??⤷?ޤ?????
trap
[action] signal ...
- ?????뤬???ꤵ?줿?????ʥ?
signal ???????Ȥä??Ȥ??ˡ?
action
?????Ϥ??¹Ԥ????褦?????ꤷ?ޤ???
?????ʥ??ϥ????ʥ???̾?????ֹ??ǻ??ꤷ?ޤ???
?????ˡ??????뽪λ???˼¹Ԥ???ư???????ꤹ?뤿???ˡ??????????ʥ?
EXIT
?????Ѳ?ǽ?Ǥ???
action ?϶?ʸ??????
?????ꡢ??ά?????ꤹ?뤳?Ȥ??Ǥ??ޤ?????ʸ?????ξ??硢???ꤵ?줿?????ʥ???
̵?뤵?졢??ά?????????ϡ????ꤷ???????ʥ????????Ȥä??Ȥ??ǥե????Ȥν?????
?Ԥ??ޤ????????뤬???֥?????????ư?????Ȥ???trap
?ǻ??ꤵ?줿 (??̵?뤵???Ƥ??ʤ?)
?????ʥ????ǥե????Ȥ?ư???˺????ꤷ?ޤ???
?????뤬??ư?????Ȥ??ˤ??Ǥ?̵?뤵?????褦?????ꤵ???Ƥ????????ʥ????Ф???
trap
???ޥ??ɤ????Ѥ??Ƥ????̤Ϥ????ޤ?????
type
[name ...]
- ?? name
?ޥ??ɤȤ??Ʋ??ᤷ?????ޥ??ɸ????η??̤????Ϥ??ޤ??????Ϥ?
???????̤ϰʲ??Τ??Τ??????ޤ??????????Υ?????ɡ??????ꥢ??????????
???Ȥ߹??ߥ??ޥ??ɡ????ޥ??ɡ????פĤ??????ꥢ??
(tracked alias)???Ǹ??? not found (???Ĥ??餺)
???????ޤ????????ꥢ???ˤĤ??Ƥϡ??????ꥢ??Ÿ??
?η??̤????Ϥ????ޤ??????ޥ??ɤȺ??פĤ??????ꥢ???ˤĤ??Ƥϡ????Υ??ޥ??ɤ?
?????ʥѥ?̾???????????ޤ???
ulimit
[-HSabcdflmnstuv
] [limit]
- ??????Υ??ߥå???
(???ߥå??ͤˤĤ??Ƥ?
getrlimit(2)
????) ?????ꤢ?뤤??ɽ?????ޤ???
limit
?????ꤵ???Ƥ??????硢???ꤵ?줿??????????ꤵ???ޤ???
?????ʳ??ξ??硢???ߤΥ?????????ͤ?ɽ???????ޤ???
-H
?????ꤵ?줿???硢?ϡ??ɥ??ߥåȤ??????ʤ???ɽ???????ޤ???
?ϡ??ɥ??ߥå??ͤ??뤳?Ȥ?ï?ˤǤ??Ǥ??ޤ?????
?????????䤹???Ȥ??Ǥ????Τϥ????ѥ桼???????Ǥ???
???ץ????? -S
?????ꤷ???????ϥ??եȥ??ߥåȤˤʤ??ޤ???
???ߥå??ͤ?ɽ?????????硢
-S
?? -H
?Τ????줫?????????????????Ǥ??ޤ?????
?ǥե????ȤǤϡ?ɽ???ϥ??եȥ??ߥåȡ??????ϥϡ???/???եȥ??ߥå?ξ???Ǥ???
???ץ????? -a
?????ꤹ????
ulimit
???ޥ??ɤ???????????????ͤ?ɽ?????ޤ???
???ξ??硢?ѥ???? limit
?ϻ????Ǥ??ޤ?????
????¾?Υ??ץ??????ϡ?ɽ?????뤤?????ꤹ????????μ????????ꤹ?????ΤǤ???
???????ϸߤ?????¾Ū?Ǥ???
-b
sbsize
- ?????åȥХåե????????κ????͡??Х???ñ?̡?
-c
coredumpsize
- ?????????ץե??????κ??祵??????512
?Х??ȤΥ֥??å?ñ?̡?
-d
datasize
- ?ץ??????Υǡ????????????Ȥκ??祵???????????Х???ñ?̡?
-f
filesize
- ?ե??????κ??祵??????512
?Х??ȥ֥??å?ñ?̡?
-l
lockedmem
- ?ץ??????????å??Ǥ????????ꥵ?????κ????͡??????Х???ñ?̡?
-m
memoryuse
- ?ץ??????ξ??åȥ??????κ????͡??????Х???ñ?̡?
-n
nofiles
- ?????ץ????????????ץ??Ǥ????ե????뵭?һҤκ???????
-s
stacksize
- ?????å??????????ȥ??????κ????͡??????Х???ñ?̡?
-t
time
- ?ƥץ??????Ǿ????Ǥ??? CPU
???֤κ????͡???ñ?̡?
-u
userproc
- ???Υ桼?? ID
??Ʊ???????餻?????????ץ?????????
-v
virtualmem
- 1
?ĤΥץ??????κ????ץ??????????????????Х???ñ?̡?
umask
[mask]
- ?ե??????????ޥ??????? (
umask(2)
??) ???? mask ?ǻ??ꤵ?줿
8 ?ʿ????ͤ????ꤷ?ޤ?????????
??ά???줿???硢???ߤΥޥ??????ͤ?ɽ???????ޤ???
unalias
[-a
] [name]
- name
?????ꤵ?줿???硢???ꤵ?줿̾???Υ????ꥢ???????????ޤ???
-a
???ץ??????ꤵ?줿???硢???٤ƤΥ????ꥢ???????????ޤ???
unset
[-fv
] name ...
- ???ꤵ?줿?ѿ??ޤ??ϴؿ??? unset
???????????ݡ??Ȥ????Ƥ??ʤ????֤ˤ??ޤ???
-v
???ץ??????ꤵ???뤫?????ץ??????????ꤵ???ʤ??ä????硢
name
???????ѿ?̾?Ȥ??ư??????ޤ???
-f
???ץ??????ꤵ?줿???硢
name
?????ϴؿ?̾?Ȥ??ư??????ޤ???
wait
[job]
- ???ꤵ?줿?????? job
????λ?????Τ??Ԥ????????????κǸ??Υץ???????
??λ???ơ????????֤??ޤ???????????ά???줿???硢???٤ƤΥ????֤???λ????
?ޤ??Ԥ?????λ???ơ????? 0
???֤??ޤ???
sh
??ü??????????Ū?˼¹Ԥ????Ƥ??????硢???????????Υ??ޥ??ɤ?????
???ޥ??????? (
?Ȥ߹??ߥ??ޥ???
?? fc
????) ?? vi
?⡼?ɤΥ??ޥ??ɹ??Խ???ǽ
?ˤ????Խ????뤳?Ȥ??Ǥ??ޤ???
???Υ⡼?ɤǤϡ?vi
?Υޥ˥奢???˼??????Ƥ??륳?ޥ??ɤΥ??֥??åȤ??Ѥ??ޤ???
???ޥ??? “set -o vi
”
(?ޤ??? “set -V
”) ?ˤ???
vi ?⡼?ɤ?ͭ???ˤʤꡢ
sh
?? vi
???????⡼?ɤ˰ܹԤ??ޤ??? vi
?⡼?????Ǥϡ?
?????⡼?ɤȥ??ޥ??ɥ⡼?ɤ?ξ??????ͳ???ڤ??ؤ??뤳?Ȥ???ǽ?Ǥ???
vi ?⡼?ɤ? vi ??Ʊ?ͤǤ??ꡢ
⟨ESC⟩ ????
?ˤ??ꥳ?ޥ??ɥ⡼?ɤ˰ܹԤ??????ޥ??ɥ⡼?ɤ?
⟨return⟩ ??????á?????Ȥǡ?
?Ԥ????Ƥ??????????Ϥ????ޤ???
Ʊ?ͤˡ????ޥ???
“set -o emacs
” ?ˤ??? emacs
???Υ??ޥ??ɹ??Խ???ǽ??
???֥??åȤ??Ȥ????Ȥ??Ǥ????褦?ˤʤ??ޤ???