シェルスクリプト総合 その19
■ このスレッドは過去ログ倉庫に格納されています
0001シェルスクリプトライター
2011/12/10(土) 20:06:40.38スクリプトのお勉強・自慢・腕試しなどにどうぞ。
□お約束
・特記なき場合はBourne Shell(/bin/sh)がデフォルトです。
bash/zsh/ksh/ashなどに依存する場合は明示しましょう。
Linuxユーザは/bin/shの正体がbashなので特に注意。
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でそれらしい単語による簡単な検索もできます。
・シェルスクリプトのことをシェルってゆーな
・シェルで使えるワイルドカード等は正規表現ではありません。
正規表現の話題はスレ違い(正規表現スレへ)
□初心者へのアドバイス:
・適した道具を判断するのも頭の重要な使い方。シェルスクリプトよりも
RubyやPerlの方が適した仕事には素直にそちらを使いましょう。
・知らないコマンドが出てきたらmanを引きましょう。
・思い通りに動かないときは、まずは sh -x でトレースしましょう。
前スレ
シェルスクリプト総合 その18
http://hibari.2ch.net/test/read.cgi/unix/1308195527/
次スレは >>970 で。
0002名無しさん@お腹いっぱい。
2011/12/10(土) 22:26:58.70今日も元気にワンタイマーしてますか?
0003名無しさん@お腹いっぱい。
2011/12/10(土) 23:02:37.12マジ質問ですいません。ワンタイマーって何ですか?
0004名無しさん@お腹いっぱい。
2011/12/10(土) 23:18:47.000005名無しさん@お腹いっぱい。
2011/12/11(日) 00:11:26.910006名無しさん@お腹いっぱい。
2011/12/11(日) 16:42:39.401000 :名無しさん@お腹いっぱい。 :sage :2011/12/11(日) 16:41:38.19
-z って変数が空か入ってるかぢゃ無いのかよ
0007名無しさん@お腹いっぱい。
2011/12/11(日) 16:51:14.38変数が未設定か設定済みかをテストしたい時は、
test -z "${var+X}"
を使う。varに空文字列がセットされていても「設定済み」と判定する。
0008名無しさん@お腹いっぱい。
2011/12/11(日) 16:59:56.87でもさ、スクリプトの場合あらかじめunsetで初期化しない?
unsetを初期化と呼ぶのかどうかさえ知らんのだけど……。
0009名無しさん@お腹いっぱい。
2011/12/13(火) 15:30:20.060010名無しさん@お腹いっぱい。
2011/12/13(火) 17:16:35.400011名無しさん@お腹いっぱい。
2011/12/13(火) 18:30:59.09辿っていけば時期は分かるだろうが、PowerShellに関しては全く知らん
0012名無しさん@お腹いっぱい。
2011/12/13(火) 20:54:11.16へー << じゃなくて <<< を使うんだな。
$ cat <<<XXX
XXX
0013名無しさん@お腹いっぱい。
2011/12/16(金) 10:58:47.040014名無しさん@お腹いっぱい。
2011/12/17(土) 12:28:51.47ヒアストリングっていまいち使いどころがわからんけど。
0015名無しさん@お腹いっぱい。
2011/12/19(月) 00:03:04.76#!bash
:<<'#COMMENT'
echo $PATH
#COMMENT
0016名無しさん@お腹いっぱい。
2011/12/19(月) 00:05:06.810017名無しさん@お腹いっぱい。
2011/12/19(月) 00:10:56.53awk <<< "$*" '{
for (i = 1; i <= NF; i++) {
print $i
}
}'
0018名無しさん@お腹いっぱい。
2011/12/19(月) 06:48:52.85それはシェル内部で添付ファイル作られるから動作が無駄だな
0019名無しさん@お腹いっぱい。
2011/12/19(月) 08:25:18.78とか使えると思うけど
0020名無しさん@お腹いっぱい。
2011/12/19(月) 08:36:39.21その添付ファイル名を知る方法ってない?
終了時に自動で美しく消されるなら使い捨てのawkやsedを埋め込むのに使いたい。
mktempとか面倒だし本題からずれて見難いしさ。
0021名無しさん@お腹いっぱい。
2011/12/19(月) 09:20:27.18exec 3<< EOF
hoge
EOF
cat /dev/fd/3
とか?
0022名無しさん@お腹いっぱい。
2011/12/19(月) 10:14:15.890023名無しさん@お腹いっぱい。
2011/12/19(月) 15:54:24.34無駄無駄だけじゃ、何も進まないぜ(キリッ
0024名無しさん@お腹いっぱい。
2011/12/19(月) 16:09:37.29実際には内部でtmpファイルが作られるという動作が実行され、
コメントになっていない、ということを >>18 が言ってるんだろ?
単に書き方が無駄だということじゃなくて、
根本的にコメントになっていないということ。
0025名無しさん@お腹いっぱい。
2011/12/19(月) 17:25:20.99cshの非実行部は構文解析されるんだっけ?
0026名無しさん@お腹いっぱい。
2011/12/22(木) 23:31:09.41対処方法としてはどうすればいいでしょうか?
0027名無しさん@お腹いっぱい。
2011/12/22(木) 23:37:38.880028名無しさん@お腹いっぱい。
2011/12/23(金) 01:09:38.83iconv使えよ・・・
0029名無しさん@お腹いっぱい。
2011/12/23(金) 09:09:05.64(まあ、-sもあるとは言え)
0030名無しさん@お腹いっぱい。
2011/12/23(金) 10:17:10.53つiconv -c オプション
0031名無しさん@お腹いっぱい。
2011/12/23(金) 11:13:30.90日本語ならnkfの方がまだ分があるって気がする
0032名無しさん@お腹いっぱい。
2011/12/23(金) 11:32:03.950033名無しさん@お腹いっぱい。
2011/12/23(金) 12:23:33.56-c オプションでも解決はしないので nkfお勧め
0034名無しさん@お腹いっぱい。
2011/12/23(金) 18:10:27.100035名無しさん@お腹いっぱい。
2011/12/24(土) 02:09:13.88入れてたpythonでフィルタ書いて使ってる
0036名無しさん@お腹いっぱい。
2011/12/24(土) 02:52:14.20サーバーの設定で文字コードって指定できるんですか?
0037名無しさん@お腹いっぱい。
2011/12/24(土) 03:18:19.750038名無しさん@お腹いっぱい。
2011/12/24(土) 03:33:21.59文字化けだけは防げると思うよ。
文字化けだけは。
0039名無しさん@お腹いっぱい。
2011/12/24(土) 08:59:26.03make一発でコンパイルできるやん
# Makefileにinstall targetがないけどw
0040名無しさん@お腹いっぱい。
2011/12/24(土) 09:07:08.000041名無しさん@お腹いっぱい。
2011/12/25(日) 00:54:50.02間違っています >>39
0042名無しさん@お腹いっぱい。
2011/12/25(日) 01:07:20.68えっ!?
0043名無しさん@お腹いっぱい。
2011/12/26(月) 01:28:47.74内容は天気表示スクリプトで使いかたは第1引数に、
http://weather.yahoo.co.jp/weather/jp/13/4410/13101.html
などのYahooのかなり限定されたURLを打ち込んで使う。
[Bash] weather_yahoo - Pastebin.com
http://pastebin.com/BxfbhQFd
curlじゃなくてaria2cは好みで使ってみた。
一部文字もユニコードで絵文字部分を使っているのでフォントや文字コードによっては文字化けが発生多発する思います。
最初のHTMLからの行の抜き出しはハードコーディングしないほうがいいと思うけど、構造自体変わったら元も子もないし、面倒でやめてしまった。
■ このスレッドは過去ログ倉庫に格納されています