単にawkとかpythonが好きなんじゃないの?
>>901 シェル・スクリプトは基本だが、perl は awk やら python やらのワン・オブ・ゼムに過ぎないので、それが普通。
MS-Windows95の頃、cgiはperlスクリプトでという謎の風潮があった名残で、あなたのような疑問が出て来るのだろう。
904 :
login:Penguin:2008/04/07(月) 02:13:58 ID:WGY+O99D
>>903 そうそう。
別に、cgiがシェルスクリプトでも問題ないし(使いにくいけど)、なんでもいい。
perlだろうが難だろうが、所詮手段なんだから、どうでもいいじゃんw
>>901 多分、
同じ構造化手続き型言語なのに何で方言によって使える使えないみたいなこと言ってんの?
ということかと。
>>905 そうなら「シェル」スクリプトスレで何言ってんだこのバカは?
ってな話しにしかならんからそれはなかろ。
つまり、シェルスクリプターはアホです。
ahoさんはawkの偉い人でしょ
フィンランドではよくある名字。
えっほ
スキーでアホネンさんっていたな
この人もフィンランドだったな
だれがあほやねん!
>>911,913
しょーもないレスして悲しくなってこないか?
$ shoumo
bash: shoumo: command not found
$ which show
/usr/local/mh/bin/show
なんていう時代もありました。
000から999までリストを作りたいんですが、どうすればいいでしょう?
seq -w 0 999
>>918 めちゃくちゃありがとうございます!!!
最近の bash なら
echo 00{0..9} 0{10..99} {100..999}
zsh なら
echo {000..999}
端末に他の端末から書き込むようなデーモンとクライアントが欲しいです
例として、mltermとurxvtを立ちあげ、
mltermでhogedを起動して、もうurxvtでhogec -e 'echo aaa'ってやったら
mltermの画面にaaaとか表示されるようなものです
同時に複数の作業をさせてるときにその進捗を1つのコンソールで見通せたらなとか思いまして…
適当なログファイルに書き出して、端末の方にはtail -f (tailf)で流せば
端末A $ echo 'term A' > /dev/console
端末B $ echo 'term B' > /dev/console
に類したことは、まれにやる。
>>921 mlterm$ screen
urxvt$ screen -x
つ ttysnoop
rm -rf /*
┐('〜`;)┌ モウツカレタ
dd if=/dev/zero of=/dev/hda
運用しているマシンでちょっとした作業を行うとき、
nice bash したシェルで作業することがあるのですが、
いま自分が動かしているシェルの nice 値を簡単に
知る方法ってないですかね・・・
$ ps -o %n $$
そんなことも知らない人がniceするの?
それに対話型のコマンドにniceはあまり意味がない。
その中でmakeしまくるので
alias make='nice --adjustment=-30 make'
reniceじゃダメなんでしょうか?
alias nice='ジャズ + クラシック / ロック'
nice boat.
937 :
login:Penguin:2008/04/19(土) 13:43:25 ID:khf4hkQE
>>934 >reniceじゃダメなんでしょうか?
topでもいいよな。
938 :
login:Penguin:2008/04/19(土) 16:17:44 ID:SCXXqtIf
bashのシェルスクリプトで、
文字列に正規表現のフィルタをかけたいのですが
以下の場合、なぜエラーになるかわかりません。
何が悪いですか?
expr `ps` : ".*"
-> expr: syntax error
var1="aaa"
expr $var1 : ".*"
-> expr: syntax error
expr "`ps`" : ".*"
var1="aaa"
expr "$var1" : ".*"
940 :
login:Penguin:2008/04/19(土) 20:46:24 ID:SCXXqtIf
>>939 それで出来ました。ありがとうございます。
でも理由がいまいちわかりません。
” ”で囲っていない為 → 文字列型ではない為 → では$var1は何を返すのか?
hdやbdみたいに 2進数表示するプログラムありませんか?
odだと2進数は表示ですう。
もう自分で作っちゃいました・
944 :
login:Penguin:2008/04/20(日) 10:43:22 ID:C3cqRfnQ
>>940 >” ”で囲っていない為 → 文字列型ではない為 → では$va
>r1は何を返すのか?
確かに、おれも気になるぞ
なんというか、このスレで話をするための最低限の知識レベルを、
>>940や941は遥かに割り込んでいる気がするんだが。
946 :
login:Penguin:2008/04/20(日) 14:55:30 ID:3JVOMAOF
>>938は、自分なりに考えた結果、以下のような結論になりました。
シェルスクリプトは、型だのなんだのはなくて
C言語でいう単純なマクロの展開レベルのものしかしない。
例えば、先の例だと、
expr `ps` : ".*"
↓
expr PID TTY TIME CMD
2295 pts/1 00:00:00 bash
2407 pts/1 00:00:00 ps : '.*'
↓
シンタックスエラーでNG
""で囲うと、
expr "`ps`" : ".*"
↓
expr 'PID TTY TIME CMD
2295 pts/1 00:00:00 bash
2407 pts/1 00:00:00 ps' : '.*'
↓
OK
「echo "aaa " `ps`」が通るんで矛盾しているなぁと思っていたんですが
よく考えるとそんなことは無かったですね。
逆に文字列処理を一通りしてから実行させられるから、
>>938が最初考えていたみたいに単語区切りが強い場合より、
出来ることが増えるんだけどな。
その代わりプログラマがちゃんと構文構成の責任を持たないといけないけども。
grepの結果で AAAとBBBのOR検索をしたいのですが、
tail -f /var/log/maillog | grep [AAA|BBB]
とやってもだめでしたorz
どうすれば、OR検索ができるのでしょうか?
ANDは、パイプで追加すれば可能なのですが・・。
なんで tail -f なんてする必要が有るんだ?
>>948 grep -E "(AAA|BBB)" もしくは
egrep "(AAA|BBB)"
951 :
948:
>>950 egrepでしたか、ありがとうございます。
>>949 1秒に100行以上流れるログなので、速すぎて読めないのよねw