トップページunix
1001コメント273KB

シェルスクリプト総合 その5

レス数が950を超えています。1000を超えると書き込みができなくなります。
0001名無しさん@お腹いっぱい。2006/01/21(土) 09:00:29
シェルスクリプトの総合スレです。
スクリプトのお勉強・自慢・腕試しなどにどうぞ。
まずは注意点、リンク、地鎮祭など(>>1-6くらい)をご覧ください。


□お約束
・特記なき場合はbourne shがデフォルトです。
 bash/csh/tcsh/zsh/ksh/ashなどに依存する場合は明示しましょう。
 Linuxユーザは/bin/shの正体がbashなので特に注意。
・UNIXにはシェルスクリプトに便利な小さなコマンドがいろいろあります。
 manや参考リンクを見ましょう。
 aproposないしはman -kでそれらしい単語による簡単な検索もできます。
・シェルスクリプトのことをシェルってゆーな
・シェルで使えるワイルドカード等は正規表現ではありません。
正規表現の話題はスレ違い(正規表現スレへ)

□初心者へのアドバイス:
・適した道具を判断するのも頭の重要な使い方。シェルスクリプトよりも
 RubyやPerlの方が適した仕事には素直にそちらを使いましょう。
・知らないコマンドが出てきたらmanを引きましょう。
・思い通りに動かないときは、まずは sh -x でトレースしましょう。
0895名無しさん@お腹いっぱい。2006/03/24(金) 09:42:42
>>894
誰もが常識として知っていることをあなたに説明して教える筋合いはない。
知りたければ自分で知ろうとする努力をしなさい。
0896名無しさん@お腹いっぱい。2006/03/24(金) 09:45:05
>>895
つまり根拠なき妄言てことですな。自白乙。
0897名無しさん@お腹いっぱい。2006/03/24(金) 09:48:12
>>896
大丈夫。みんな妄想してるから。
0898名無しさん@お腹いっぱい。2006/03/24(金) 10:42:36
まあ、釣りだろうけど、
「kshが移植性が一番高い」などとマジで言ってるなら重症だぞ。
ヨソでそんなこと言って恥かくなよ。
0899名無しさん@お腹いっぱい。2006/03/24(金) 10:50:45
罵り合いで盛り上がっているところ申し訳無いが、
汎用性と移植性は違う気がする。

汎用性は用途の広さだよね。
それならどのシェルもほとんど変わらない気がする。
0900名無しさん@お腹いっぱい。2006/03/24(金) 10:53:40
>>894
$ ssh freebsd-host
freebsd$ ksh
ksh: not found
freebsd$ exit
$ ssh linux-host
linux$ ksh
ksh: not found
linux$ exit

....noway, what more can I say ?
0901名無しさん@お腹いっぱい。2006/03/24(金) 11:18:12
おぃおぃ
お前のマシンに当該シェルがあるかどうかなんて聞いちゃいねー
0902名無しさん@お腹いっぱい。2006/03/24(金) 11:25:36
>>901
そのとおりだが、漏れもpdkshなんて使わんからアンインストールしてるよ。
0903名無しさん@お腹いっぱい。2006/03/24(金) 11:29:27
>>901
はぁ?
どんなホストでも、誰のホストでも、
デフォで動くというのが「移植性」の必須条件なわけだが。
0904名無しさん@お腹いっぱい。2006/03/24(金) 11:31:39
んなこたーない
0905名無しさん@お腹いっぱい。2006/03/24(金) 11:34:37
>>903
そういう標準化の為に色々大人が事情をつくるのよ
どんなUNIX95のホストでもとか
POSIXに準拠したホストでもとか

0906名無しさん@お腹いっぱい。2006/03/24(金) 11:50:29
>>905
だからPOSIXって実際には使えないわけですね。
0907名無しさん@お腹いっぱい。2006/03/24(金) 13:38:49
準拠ってことばを知らないなら辞書でしらべなよ(^_^;)
0908名無しさん@お腹いっぱい。2006/03/24(金) 13:57:13
>>890
たくさん釣れましたね。
確かに、本当にKorn Shellが移植性が高かったら良かったかも知れませんね。
でも現実にはもう遅いですね。
0909名無しさん@お腹いっぱい。2006/03/24(金) 14:24:02
腎虚
0910名無しさん@お腹いっぱい。2006/03/24(金) 21:56:42
言葉遊び乙
0911名無しさん@お腹いっぱい。2006/03/24(金) 22:03:57
打倒米帝
0912名無しさん@お腹いっぱい。2006/03/24(金) 22:21:31
【設問1】
次の各項目を、その可能性が高い順番に並べよ。(10点)

(1) IPv6が普及する
(2) UNIX環境においてUTF8がEUCよりも普及する
(3) kshが最も移植性の高いシェルとして普及する
0913名無しさん@お腹いっぱい。2006/03/24(金) 22:45:38
(2)>>>>>>>>>>>>>>>>(1)>(3)
0914名無しさん@お腹いっぱい。2006/03/24(金) 22:48:19
(4) 俺が童貞を卒業する
0915名無しさん@お腹いっぱい。2006/03/24(金) 22:57:20
>>914
本当にやる気が有ればいつでも捨てれるはずだ
0916名無しさん@お腹いっぱい。2006/03/24(金) 22:58:53
>>912
どれも可能性ほぼゼロ。
よって、どの順に並べても正解。


UTF8は、全角記号の横幅問題が解決しない限り、実際問題使えない。
0917名無しさん@お腹いっぱい。2006/03/24(金) 23:08:27
φ=(2)>>>>>>>>(1)>(3)>>>>>>(4)

でFA?
0918名無しさん@お腹いっぱい。2006/03/24(金) 23:16:50
xterm -cjk_witdh じゃ駄目なの?
0919名無しさん@お腹いっぱい。2006/03/24(金) 23:32:06
そりゃ一番機能が低いのが一番移植性が高いだろ。CPM-80のcommand.comの移植性が一番高いでFA。
0920名無しさん@お腹いっぱい。2006/03/24(金) 23:43:22
それこそがunix philosophyだという話もある
0921名無しさん@お腹いっぱい。2006/03/24(金) 23:55:22
>>919
いい加減なことぬかすな、CP/Mにはcommand.comなど無い。
0922名無しさん@お腹いっぱい。2006/03/25(土) 00:24:05
そういうことなら自動販売機が一番移植性高い。
0923名無しさん@お腹いっぱい。2006/03/25(土) 00:24:49
オナホでもおでんでも売れるものな
0924名無しさん@お腹いっぱい。2006/03/25(土) 00:27:59
今こそS-OS復権
0925名無しさん@お腹いっぱい。2006/03/25(土) 00:46:37
OS-9!OS-9!
0926名無しさん@お腹いっぱい。2006/03/25(土) 01:03:03
2>1>>3>>>>>>>>>>>>4
ぐらい
0927名無しさん@お腹いっぱい。2006/03/25(土) 01:25:48
(2)>>(1)>=(4)>>[越えられない壁]>>(3)
が漏れの印象
0928名無しさん@お腹いっぱい。2006/03/25(土) 01:54:43
>>923
オナホの自販機ってあるんだ。さすがだれにも相手にされなくなった
ご老体さまがたですなw
0929名無しさん@お腹いっぱい。2006/03/25(土) 02:01:54
dtkshとか、pgbashとか、ああいうの他にないんですか?
0930名無しさん@お腹いっぱい。2006/03/25(土) 02:01:56
(1)>>>>>>>>>>>>>>(3)>(2)
2はUNIXではムリでそ
犬はUNIXじゃないし〜
1は連邦政府の動向見ると実現しそう
日本は後追いで普及ということになるだろうけど
3はよく分からないけどLinuxの鳥ベンダ次第
システム用の各種スクリプトはXMLでラップする方が普及すると思うので
シェルの差っていうのは余り意識せず済むようになると思うケド
4は心がけ次第
0931名無しさん@お腹いっぱい。2006/03/25(土) 02:02:09
オナホってそこらの女より刺激が強くて気持ちいいよ?
0932名無しさん@お腹いっぱい。2006/03/25(土) 02:07:56
おでん缶うまうまだよもん
0933名無しさん@お腹いっぱい。2006/03/25(土) 02:33:55
>>925
OS-9ってshell 差し換えできましたっけ。

0934名無しさん@お腹いっぱい。2006/03/25(土) 12:29:58
コマンドの標準入力がファイルを入力する時、
command < file
というのと、
command '< file'
というのと、両方ありますよね。
どう違うんですか?
0935名無しさん@お腹いっぱい。2006/03/25(土) 12:54:58
>>934
日本語でおk
0936名無しさん@お腹いっぱい。2006/03/25(土) 13:03:49
ジュワワワジュワワ、
ジュワジュワジュジュワワワワワ?
0937名無しさん@お腹いっぱい。2006/03/25(土) 13:04:55
>>933
AV Riderはシェルを換えられるというデモの意味もあった。
0938名無しさん@お腹いっぱい。2006/03/25(土) 13:17:49
>>935-937
知らないなら茶々入れるなよ!
0939名無しさん@お腹いっぱい。2006/03/25(土) 13:22:08
> 両方ありますよね。
ありません
0940名無しさん@お腹いっぱい。2006/03/25(土) 13:27:14
実際にあるから聞いてるのっ!
0941名無しさん@お腹いっぱい。2006/03/25(土) 14:02:21
command < file
はcommandへの引数は無し、標準入力はfileになる。
command '< file'
はcommandへの引数は一つで、それは '< file' という文字列。標準入力は変わらず。
だから、2つの書き方でやろうとしていることは全く違う。

実際にあるなら、その行を変更無しにそのままコピペしてみな。
0942名無しさん@お腹いっぱい。2006/03/25(土) 14:08:27
'< file' じゃなくて `< file` なんじゃないの?
で、bash依存なのでお引き取りください。
0943名無しさん@お腹いっぱい。2006/03/25(土) 14:50:56
で、bash依存だとなんで引き取らなきゃいけないの?
0944名無しさん@お腹いっぱい。2006/03/25(土) 14:58:01
>>943
つべこべ言うなニート
0945名無しさん@お腹いっぱい。2006/03/25(土) 14:59:19
bashスレ行け池沼
0946名無しさん@お腹いっぱい。2006/03/25(土) 14:59:30
>>943
bash依存だとUNIXがぶちにくいんじゃない
0947名無しさん@お腹いっぱい。2006/03/25(土) 15:42:32
bashはUNIXではない。
0948名無しさん@お腹いっぱい。2006/03/25(土) 15:54:52
もちろんNetBSDです。
0949名無しさん@お腹いっぱい。2006/03/25(土) 17:50:14
historyがUNIXだと表示されますが、
シェルにすると出ません。
UNIXとシェルでは何か違いがあるのでしょうか?
0950名無しさん@お腹いっぱい。2006/03/25(土) 18:07:01
>>949
英語でおk
0951名無しさん@お腹いっぱい。2006/03/25(土) 18:46:24
When history is on UNIX, it is displayed,
but when it is made into shell, it doesn't.
Is there any difference between UNIX and shell ?
0952名無しさん@お腹いっぱい。2006/03/25(土) 18:50:41
>>951
>Is there any difference between UNIX and shell ?

Yes.
0953名無しさん@お腹いっぱい。2006/03/25(土) 19:00:24
>>952
Thanks. Tell me why and how to make it work.
0954名無しさん@お腹いっぱい。2006/03/25(土) 19:03:12
(いぶまさとうの声で) yes, a little.
0955名無しさん@お腹いっぱい。2006/03/25(土) 19:07:05
The history command is very bash specific. You should go back now !!
0956名無しさん@お腹いっぱい。2006/03/25(土) 19:18:39
(いぶまさとうの声で) シンナーに気をつけろー
0957名無しさん@お腹いっぱい。2006/03/25(土) 21:19:40
>>942
んなこたない。`< file` は kshでも使えるぞ。
0958名無しさん@お腹いっぱい。2006/03/26(日) 00:43:12
テンプレをup-to-dateなものに修正したので、
ここに↓に上げておきます。
次スレ立てる人はコピペしてください。

オレの環境からだとなぜか立てられないので・・
0959名無しさん@お腹いっぱい。2006/03/26(日) 00:43:48
シェルスクリプト総合 その6


シェルスクリプトの総合スレです。
スクリプトのお勉強・自慢・腕試しなどにどうぞ。
まずは注意点、リンク、地鎮祭など(>>1-6くらい)をご覧ください。


□お約束
・特記なき場合はBourne Shell(/bin/sh)がデフォルトです。
 bash/zsh/ksh/ashなどに依存する場合は明示しましょう。
 Linuxユーザは/bin/shの正体がbashなので特に注意。
・csh/tcshのシェルスクリプトは推奨されません。
(理由は「csh-whynot」でググれ)
・UNIXにはシェルスクリプトに便利な小さなコマンドがいろいろあります。
 manや参考リンクを見ましょう。
 aproposないしはman -kでそれらしい単語による簡単な検索もできます。
・シェルスクリプトのことをシェルってゆーな
・シェルで使えるワイルドカード等は正規表現ではありません。
正規表現の話題はスレ違い(正規表現スレへ)

□初心者へのアドバイス:
・適した道具を判断するのも頭の重要な使い方。シェルスクリプトよりも
 RubyやPerlの方が適した仕事には素直にそちらを使いましょう。
・知らないコマンドが出てきたらmanを引きましょう。
・思い通りに動かないときは、まずは sh -x でトレースしましょう。
0960名無しさん@お腹いっぱい。2006/03/26(日) 00:44:55
□前スレや過去スレ:
シェルスクリプト総合 その5
http://pc8.2ch.net/test/read.cgi/unix/1137801629/
シェルスクリプト総合 その4
http://pc8.2ch.net/test/read.cgi/unix/1131026501/
シェルスクリプト総合 その3
http://pc8.2ch.net/test/read.cgi/unix/1124889646/
シェルスクリプト総合 その2
http://pc8.2ch.net/test/read.cgi/unix/1113664637/
シェルスクリプト総合 その1
http://pc8.2ch.net/test/read.cgi/unix/1101820646/

□関連スレ:
sed
http://pc8.2ch.net/test/read.cgi/unix/1085730992/
正規表現
http://pc8.2ch.net/test/read.cgi/unix/1039165754/
おまえら! shell は何を使っているんですか?
http://pc8.2ch.net/test/read.cgi/unix/1012330865/
Eshell の使い方とか設定とか【Emacs Shell、Lisp】
http://pc8.2ch.net/test/read.cgi/unix/1102921590/

□他板の関連スレ:
【sed】シェルスクリプト総合@LINUX【awk】
http://pc8.2ch.net/test/read.cgi/linux/1121994321/
【Shell】どのシェル使ってる?【Script】
http://pc8.2ch.net/test/read.cgi/linux/1067330754/
0961名無しさん@お腹いっぱい。2006/03/26(日) 00:47:34
□初心者向けリンク
「誰にでも」シリーズ
ttp://kanji.zinbun.kyoto-u.ac.jp/~yasuoka/publications/dareUni/
/bin/shプログラミング入門
ttp://freebooks.info.nara-k.ac.jp/archive/ShellProgramming/
シェルを使おう - 導入からプログラミングまで -
ttp://www.netfort.gr.jp/~tomokuni/lms/shell/text/

□入門者向け書籍:
プロフェショナルシェルプログラミング
http://www.amazon.co.jp/exec/obidos/ASIN/4756116329/
入門UNIXシェルプログラミング―シェルの基礎から学ぶUNIXの世界
http://www.amazon.co.jp/exec/obidos/ASIN/4797321946/
UNIXシェルプログラミング徹底解説
http://www.amazon.co.jp/exec/obidos/ASIN/4822280489/
入門Kornシェル
http://www.amazon.co.jp/exec/obidos/ASIN/4873110149/
入門bash
http://www.amazon.co.jp/exec/obidos/ASIN/4900900788/

□参考リンク:
UNIXの部屋 (沢山のコマンドの簡単な紹介など)
http://x68000.q-e-d.net/~68user/unix/
POSIX: Shell & Utilities (標準規格)
http://www.opengroup.org/onlinepubs/009695399/utilities/contents.html
0962名無しさん@お腹いっぱい。2006/03/26(日) 00:49:52
□関連書籍と関連リンク:
FreeBSD Hypertext Man Pages
http://www.freebsd.org/cgi/man.cgi
Linux JF (Japanese FAQ) Project.
http://www.linux.or.jp/JF/
Unix Programming Frequently Asked Questions 日本語訳
http://www.adl.nii.ac.jp/~moro/unix-programmer/faq-j_toc.html
UNIXプログラミング環境
http://www.amazon.co.jp/exec/obidos/ASIN/4871483517/

□人間初心者へのお願い:
・このスレはシェルスクリプトについてのスレです。
 シェルの対話的な利用についての話やスクリプトと関係ないコマンドの
 使い方の質問などはスレ違いなので無用に願います。

□シェルスクリプトでよく使うコマンド:
制御・条件判定系: [,test,expr,true,false,yes,getopts

テキスト処理系: cat,awk,sed,tr,sort,uniq,grep,wc,head,tail,cut,paste,comm,join

ファイル検索系: find,xargs
(スペースなどを含むファイル名を正しく処理するため、
findは -print0、xargsは -0オプションを常に付けることを推奨
ただし、Solarisでは未対応。どうするんだろ?)

ディレクトリ系: basename,dirname
出力系: echo,printf
対話コマンド制御系: expect
http/ftpの処理自動化: wget,curl
0963名無しさん@お腹いっぱい。2006/03/26(日) 00:51:03
□最近のシェルスクリプト本(1)

(2004/03) UNIXシェルスクリプトハンドブック 関根 達夫 (著)
http://amazon.co.jp/o/ASIN/4797326522/

(2004/10) UNIXシェルスクリプト逆引き大全333の極意 中橋 一朗 (著)
http://amazon.co.jp/o/ASIN/4798008842/

(2004/11) 仕事に使えるLinuxシェルスクリプト 千葉 真人 (著)
http://amazon.co.jp/o/ASIN/4822282090/

(2004/12) UNIXシェルスクリプトサンプルブック デイブ・テイラー (著)
http://amazon.co.jp/o/ASIN/4797327286/

(2005/02) シェルスクリプト基本リファレンス 山森 丈範 (著)
http://amazon.co.jp/o/ASIN/4774122610/

(2005/04) LinuxWorldスクリプト 月刊リナックス・ワールド総集編 月刊LinuxWorld特別 (著)
http://amazon.co.jp/o/ASIN/4872802349/

(2005/05) UNIXシェルスクリプトコマンドブック 山下 哲典 (著)
http://amazon.co.jp/o/ASIN/4797330635/

(2005/05) わかる&使える UNIX基礎講座 シェルスクリプト編 中井 獏 (著)
http://amazon.co.jp/o/ASIN/4774123625/
0964名無しさん@お腹いっぱい。2006/03/26(日) 00:51:45
□最近のシェルスクリプト本(2)

(2005/07) UNIX シェルスクリプト辞典 川井 義治 (著),志田 智 (著),田淵 貴昭,米田 聡
http://amazon.co.jp/o/ASIN/4798109231/

(2005/08) シェルスクリプト ポケットリファレンス bash編 宮原 徹 (著), 川原 龍人 (著)
http://www.amazon.co.jp/o/ASIN/4774124818/

(2005/12) 図解でわかるLinuxシェルスクリプト・正規表現 小泉 修(著)
http://www.amazon.co.jp/o/ASIN/4534040067/

(2006/01) 詳解 シェルスクリプト アーノルド ロビンス (著), ほか
http://www.amazon.co.jp/o/ASIN/4873112672/
0965名無しさん@お腹いっぱい。2006/03/26(日) 00:52:41
以上でーす。
0966名無しさん@お腹いっぱい。2006/03/26(日) 01:13:30
テンプレ長くなったなあ。

名著厳選ってのならともかく、シェル本網羅ってのは
尼損で検索すればいいだけだしテンプレとしては要らないんでないの。
0967名無しさん@お腹いっぱい。2006/03/26(日) 01:14:24
>>966
▼遅い
0968名無しさん@お腹いっぱい。2006/03/26(日) 03:52:11
いい加減長いし、Wiki でも作る?
0969名無しさん@お腹いっぱい。2006/03/26(日) 04:01:11
次スレで刈り込めばいいんじゃね。
0970名無しさん@お腹いっぱい。2006/03/26(日) 08:33:16
>>959
>  Linuxユーザは/bin/shの正体がbashなので特に注意。

→bashであることが多いので

ashなデストリも増えてる。
0971名無しさん@お腹いっぱい。2006/03/26(日) 08:40:10
>>966
確かにこのリスト、アマゾンの「最近の出版年月の順番」なだけのような…

俺のお奨めは、

詳解 シェルスクリプト アーノルド ロビンス (著), ほか
http://www.amazon.co.jp/o/ASIN/4873112672/
UNIXシェルスクリプトサンプルブック デイブ・テイラー (著)
http://amazon.co.jp/o/ASIN/4797327286/
入門UNIXシェルプログラミング−Bourne Shellの基礎から学ぶUNIX World
http://www.amazon.co.jp/exec/obidos/ASIN/4797308281/
0972名無しさん@お腹いっぱい。2006/03/26(日) 08:49:28
過去スレも長くなってきたら省略するか最後に回すかした方がいいな。
その2とか参照する暇人はいないだろう。
0973名無しさん@お腹いっぱい。2006/03/26(日) 09:21:01
>>970
くだらん言い訳してないでLinux板にbashスレでも立て てお け
0974名無しさん@お腹いっぱい。2006/03/26(日) 10:41:42
もうあるよ。
0975名無しさん@お腹いっぱい。2006/03/26(日) 11:51:48
>>957
zshでも使えるね。「bash依存」で片付けられないわけか。
0976名無しさん@お腹いっぱい。2006/03/26(日) 12:05:45
>>970
ちょっと話は変わるけど、
ashって、バージョンによって echoが echo -eを含んでいたり、いなかったり、
バージョンによってtypeコマンドが実装されていなかったり、
letコマンドの動作がbash/zsh/kshとは違ったり、、と
ashはashで変なところがあって違和感ない?
0977名無しさん@お腹いっぱい。2006/03/26(日) 12:36:28
>>976
FreeBSDだけの話するなよw
0978名無しさん@お腹いっぱい。2006/03/26(日) 12:59:51
>>977
FreeBSDだけじゃないだろ。
0979名無しさん@お腹いっぱい。2006/03/26(日) 13:05:21
愛から和ズレベルヒクイナw
0980名無しさん@お腹いっぱい。2006/03/26(日) 13:30:31
0981名無しさん@お腹いっぱい。2006/03/26(日) 13:32:45
ashはNetBSDのもの。
確かに、バージョンによって変種多杉。
0982名無しさん@お腹いっぱい。2006/03/26(日) 13:35:04
で、>>949 は誰もわからないのですか?
0983名無しさん@お腹いっぱい。2006/03/26(日) 13:37:41
中国語でおk
0984名無しさん@お腹いっぱい。2006/03/26(日) 13:37:47
>>981
FreeBSDはいろいろ手入れてるぞ、確か。
0985名無しさん@お腹いっぱい。2006/03/26(日) 13:39:54
>>982
質問の意味がわからない。
0986名無しさん@お腹いっぱい。2006/03/26(日) 13:41:04
>>984
Debianのashもいろいろ手を入れてる。
同じashのつもりだとハマる。
0987名無しさん@お腹いっぱい。2006/03/26(日) 13:46:15
pdkshとkshもいろいろ違う。
0988名無しさん@お腹いっぱい。2006/03/26(日) 13:46:52
bashよりはまとも。
0989名無しさん@お腹いっぱい。2006/03/26(日) 13:51:28
おまえらのashで、`< file` は使えますか?
0990名無しさん@お腹いっぱい。2006/03/26(日) 13:58:07
POSIX的には `< file` が使えないといかんのか。
0991名無しさん@お腹いっぱい。2006/03/26(日) 14:02:07
Bourne Shell的には `< file` なんて使えちゃダメ。
0992名無しさん@お腹いっぱい。2006/03/26(日) 14:04:11
だったら、Bourne Shell的には ashで $(command) が使えるのもおかしいよね?
0993名無しさん@お腹いっぱい。2006/03/26(日) 14:07:42
Bourne Shell的にはSolarisの/bin/shが一番マトモ。
0994名無しさん@お腹いっぱい。2006/03/26(日) 14:10:06
ashはash。shはsh。
レス数が950を超えています。1000を超えると書き込みができなくなります。