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

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

レス数が1000を超えています。これ以上書き込みはできません。
0001名無しさん@お腹いっぱい。2013/11/01(金) 07:58:50.52
シェルスクリプトの総合スレです。
□お約束
・特記なき場合はBourne Shell(/bin/sh)がデフォルトです。
 bash/zsh/ksh/ashなどに依存する場合は明示しましょう。
 Linuxユーザは/bin/shの正体がbashまたはdashなので特に注意。
 FreeBSDユーザは/bin/shの正体がashなので注意。
 v7 shに一番近くて、現役のshは、OpenSolaris由来のheirloom sh。
  http://src.opensolaris.org/source/xref/onnv/onnv-gate/usr/src/cmd/sh/
  http://heirloom.sourceforge.net/sh.html
・csh/tcshのシェルスクリプトは推奨されません。
 (理由は「csh-whynot」でググれ)
・UNIXにはシェルスクリプトに便利な小さなコマンドがいろいろあります。
 manや参考リンクを見ましょう。
 aproposないしはman -kでそれらしい単語による簡単な検索もできます。
・シェルで使えるワイルドカード等は正規表現ではありません。
 正規表現の話題はスレ違い(正規表現スレへ)
・シェルスクリプトのことをシェルってゆーな
□初心者へのアドバイス:
・適した道具を判断するのも頭の重要な使い方。シェルスクリプトよりも
 awkまたはperlの方が適した処理にはそちらを使いましょう。
・知らないコマンドが出てきたらmanを引きましょう。
・思い通りに動かないときは、まずは sh -x でトレースしましょう。
□回答者への注意事項:
・シェルスクリプトでの処理方法を質問しているのに、よくわからずに
 「そういうのはperl使いましょう」と回答するのはやめましょう。
 安易にperlに逃げずにシェルスクリプトで処理するのが頭のいいやり方。
前スレ
シェルスクリプト総合 その21
http://toro.2ch.net/test/read.cgi/unix/1352973453/
0992名無しさん@お腹いっぱい。2014/07/01(火) 13:51:27.90
よく分からんな
#!/bin/sh
で動く範囲ならOK?
0993名無しさん@お腹いっぱい。2014/07/01(火) 14:01:06.07
>>992
それじゃ/bin/shが実際何なのかわからん。
0994名無しさん@お腹いっぱい。2014/07/01(火) 14:24:32.56
>>991
まあ、個人的には誰しも、どーでもいいと思うだろう
だけど、色々な環境が有って、>>1でお約束を決めるに至った事を考えると、そうも思えない

>>992
ここは、総合。明示すればどんなシェルもOK
$ ls -l /bin/sh
/bin/sh -> dash
とかなってれば/bin/dashとか書けばいいし、少し調べてPOSIXシェルでとかでもいい
0995名無しさん@お腹いっぱい。2014/07/01(火) 14:26:17.93
おれもどうでもいいんだけど、一部求道者がいるのよね。
0996名無しさん@お腹いっぱい。2014/07/01(火) 14:28:04.05
>>1を決めた経緯なんてそんなたいしたもんあったっけ。
誰かが勝手に付け加えてっただけだろう。

>>994
シンボリックリンクかどうか見ただけじゃ不十分。
シンボリックリンクになってなくてもOS違えば挙動が変わる。
0997名無しさん@お腹いっぱい。2014/07/01(火) 14:35:51.47
専用スレがあるシェルはそっちに行ってもらって
あくまでもelseで落ちてきたシェルだけがここというのは?
0998名無しさん@お腹いっぱい。2014/07/01(火) 14:40:48.56
却下します。
0999名無しさん@お腹いっぱい。2014/07/01(火) 14:57:35.22
>>996 確かに変わるな
それで、不十分だから >>996 は明示の仕方について異論が有るのか?
>>1ではシェルを明示すればいい様だが
1000名無しさん@お腹いっぱい。2014/07/01(火) 15:08:14.47
>>999
どのシェルかわかるように明示してくれればそれでいいよ。
10011001Over 1000Thread
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。