シェルスクリプト総合 その8at UNIX
シェルスクリプト総合 その8 - 暇つぶし2ch724:名無しさん@お腹いっぱい。
07/06/27 00:50:42
>>721
マジだよ。/sbinは別れてるけど。
>>720は/usrがマウントできない状況のことを言ってるんだと思うけど最近は/と/usrを分けないのもふつうなんじゃないかな。

725:名無しさん@お腹いっぱい。
07/06/27 00:53:11
どっちかっつーとそういう問題でなくて、
ふつースクリプトは#!/bin/shで書くけど/bin/shが何だかわかんねーじゃん?
って話では?

726:名無しさん@お腹いっぱい。
07/06/27 02:29:26
>>722
HP-UXもだな。


727:名無しさん@お腹いっぱい。
07/06/27 02:31:28
ashもいろいろ修正入ってる。
Solarisの/bin/shはそれこそSystemV7のころのものとほとんど変わっていない。


728:名無しさん@お腹いっぱい。
07/06/27 03:37:47
・・・ってシェルを使えじゃなくてPOSIXだか何かのsh規格に沿って書けって事だよな。

729:名無しさん@お腹いっぱい。
07/06/27 07:44:21
>>721
じゃなくて、シングルユーザーモードの時、
/sbin/shはあるが、
/sbin/kshは無い。

/sbin/shはstatic linkの/bin/sh(/usr/bin/sh)
だから、シングルユーザーモードも含めれば、
結局 /bin/shの文法の範囲で書かざるを得ないという話。

しかも、Solarisの/bin/shは古いままなので、
export a=b も、$(command)も test -e も、
ちょっと新しい書き方はすべて使えない。

730:名無しさん@お腹いっぱい。
07/06/27 08:03:47
互換性の話に便乗だけど、
一部のスクリプトで、未だに

${1+"$@"} って書いてあるのがある。
これ、もう "$@" でいいんじゃないか?

引数が0個の時に ""が残らないようにする措置だろうけど、
Solarisの/bin/shですらそんな不具合は発生しない。(確認済み)
なので、"$@"と書いて問題ないし、視認性上も "$@"と書くべきと思うんだが。

本当に ${1+"$@"}と書く必要がある /bin/shを搭載したOSって、
現存してる?

731:名無しさん@お腹いっぱい。
07/06/27 22:07:07
>>729
なんか Solaris のシングルユーザモードって不便そうですね。
CD 6枚焼いたけど、インストールを躊躇してしまうよ。

732:名無しさん@お腹いっぱい。
07/06/27 22:19:42
/ と /usr をわけたりしなければ気にする必要ないよ。


733:名無しさん@お腹いっぱい。
07/06/27 23:07:41
>>724, >>726
なるほどねぇ、知らんかったよ。ありがと。

>>730
書き換えるのが面倒なだけなんじゃないか?

目障りだと思うなら、君が片っ端から書き換えて動作検証してあげればいいと思う。

734:名無しさん@お腹いっぱい。
07/06/27 23:19:19
>>732
すんません BSD ユーザなもので、 / と /usr を分けるというのが
イマイチ良く解かりません。
ad0s1a に全部突っ込めって事ですか?
/var も /tmp も含めて・・・(よーするに swap 以外は同じパーテーション?)
Solaris だとそんなの有りなんだぁ。(BSDでも無いことは無いけど、なんだか・・)


735:名無しさん@お腹いっぱい。
07/06/27 23:36:43
OSは別に関係ない。パーティションの切り方なんて好みの問題だ。


736:名無しさん@お腹いっぱい。
07/06/27 23:43:05
>>735
でも、その好みの問題に対して Solaris はシングルユーザモードの
挙動をもってして、ユーザに介入してくる分けでしょう?
>>732 のレスからは、そういう風に読めるのだが?

737:名無しさん@お腹いっぱい。
07/06/28 00:09:08
どうでもいいけどよそでやってくんないかな。

738:名無しさん@お腹いっぱい。
07/06/28 05:10:23

>>730 の ${1+"$@"}  てどうゆう意味なの??
なんか理解できん・・・(TT

739:名無しさん@お腹いっぱい。
07/06/28 05:18:04
>>734
NetBSDのデフォルトは分けないからBSDユーザーってのは言い訳にならない。

740:名無しさん@お腹いっぱい。
07/06/28 07:33:15
あと、未だに
if [ X$HOGE = X ]
なんてのも見かける。これも、
if [ "$HOGE" = '' ]
と書いたほうがいい。

むかーしのバージョンのtestで、$HOGEの内容が = だったような場合、
[ = = '' ] みたいになるとエラーになるtestに対する対処として、
X$HOGE とかいう回避法があったけど、今の testコマンドでそれが必要なのは
もう現存しないはず。

741:名無しさん@お腹いっぱい。
07/06/28 14:01:16
>むかーしのバージョンのtestで、$HOGEの内容が = だったような場合、

ちがう。
$HOGE の内容が -f だったような場合に対する対処だから、今でも有効。


742:名無しさん@お腹いっぱい。
07/06/28 14:16:42
>>741
$HOGE の内容が -f でも正常に動くんだけど。
[ -f = hoge ] みたいに、項が3つある時は、
-fはファイル存在オプションとはみなされないから

-f だった時駄目になるような/bin/sh搭載した OSって 何?

743:名無しさん@お腹いっぱい。
07/06/28 14:36:59
>>742

a="-f"
b="-a"
c="="
d=""
test X"$a" = X"$b" -a X"$c" = X"$d"
echo $?
test $a = $b -a $c = $d
echo $?

FreeBSD の ash、Solaris の sh, ksh、GNU bash いずれでも異なる結果になりました。


744:名無しさん@お腹いっぱい。
07/06/28 14:39:58
>>743
それは、複数の式を -a (AND) でつないだ場合の話。
それだと確かに式の評価がおかしくなることがあるが、

[ $HOGE = hoge ] なら、X$HOGE とする必要はなし。

Solarisの/bin/sh でも [ -f = -f ] は無問題。

745:名無しさん@お腹いっぱい。
07/06/28 14:43:14
-a 使ってるかどうかで場合わけするより
一律で X$HOGE にしといた方がおしゃれ。

746:名無しさん@お腹いっぱい。
07/06/28 14:48:53
>>745
-a 使う場合は、各評価式ごとに \( \) で括るのを推奨。

[ \( "$a" = "$b" \) -a \( "$c" = "$d" \) ]

↑みたいにね。これで、X"$HOGE" は不要。

747:名無しさん@お腹いっぱい。
07/06/28 14:54:19
>>744
> [ $HOGE = hoge ] なら、

クォート忘れてる。

> X$HOGE とする必要はなし。

ダウト。
そのへんの対バカ性能をどこまで頑張るかはヒューリスティックで実装依存。

たとえばFreeBSDのtestでは

$ HOGE='!'
$ [ "$HOGE" = hoge ]; echo $?
[: =: unexpected operator
2

となるので変数に任意の値を想定するなら "X$HOGE" = Xhoge は依然必要。
常にtestの引数が正しい式となるよう書くにしくはなし。

748:名無しさん@お腹いっぱい。
07/06/28 15:06:47
>>747 氏に聞きたいのだが、
>>730 についてはどうお考え?

${1+"$@"} は以前必要? もう不要で "$@"で桶?

749:名無しさん@お腹いっぱい。
07/06/28 15:09:08
ここでポリシー決めても
どこ使うんだろ。

750:名無しさん@お腹いっぱい。
07/06/28 17:18:00
こういう突っ込んだ話まで網羅してる本は無いの?

751:名無しさん@お腹いっぱい。
07/06/28 17:20:30
結局トラディショナルな書式に落ち着くんだよな...

752:名無しさん@お腹いっぱい。
07/06/28 17:25:52
文字列の比較なら [ X"$HOGE" = hoge ] なんてするより
case $HOGE in hoge) にするなぁ。

caseだと、たとえ$HOGEの中身が ! だとか -f -a とか特殊記号だったとしても
すべて無問題だから。

753:名無しさん@お腹いっぱい。
07/06/28 17:31:27
>>750
詳解シェルスクリプトを企画するか

754:名無しさん@お腹いっぱい。
07/06/28 17:35:22
需要ないだろー

755:名無しさん@お腹いっぱい。
07/06/28 17:37:22
wikiでいいんじゃね

756:名無しさん@お腹いっぱい。
07/06/28 17:38:15
需要とかそういうことに興味あるのかしら?

757:名無しさん@お腹いっぱい。
07/06/28 17:39:17
>>756
本売るつもりなら大事でしょ。

758:名無しさん@お腹いっぱい。
07/06/28 17:40:07
需要ないだろ。問題になるのSolarisだけだし、Solarisユーザーの人数が、、、

759:名無しさん@お腹いっぱい。
07/06/28 17:41:25
>>757
>>756 が言ってるのは、ユーザーがシェルの互換性に興味あるのか? ってことでは
(需要に興味があるかどうかじゃなく)

760:名無しさん@お腹いっぱい。
07/06/28 17:49:09
今時、シェルスクリプトの本なんて、全く売れないとは言わないにしても
何冊くらい売れるんだ?
このスレでも>>4にある本の話なんて全然出ないし。

761:名無しさん@お腹いっぱい。
07/06/28 17:50:30
入門書はそれなりに売れるんじゃないの?
そういうの読む人がここの話に参加しづいらいだけで。

762:名無しさん@お腹いっぱい。
07/06/28 17:52:47
getopts は互換性あるの?

763:名無しさん@お腹いっぱい。
07/06/28 17:59:17
>>762
よほど古いシェルじゃない限り互換性ある。でもなぜか出番なくてあまり使わない。

764:名無しさん@お腹いっぱい。
07/06/28 18:02:34
詳説正規表現もこんなのみんな興味あるのかよとかおもったけど
意外に受けたらしいから

765:名無しさん@お腹いっぱい。
07/06/28 18:11:11
互換性があって、どのシェルでも使えるのに、
使ってるの見たことないコマンドの筆頭が readonly だな。

766:名無しさん@お腹いっぱい。
07/06/28 18:12:21
>>763
ありがとうございます。
もうひとつ質問なんですが、ポータブルかつ安全に一時ファイルを作成するにはどうすればいいのでしょうか。

767:名無しさん@お腹いっぱい。
07/06/28 18:12:31
UNIXシェルの新刊はここ2年くらいやたら出たが、
もうこの分野で出ても意味ないわな。
カーニハン&パイクとブルース・ブリンけあればいいんじゃないか。

768:名無しさん@お腹いっぱい。
07/06/28 18:17:41
>>766
どこまでの安全性を言ってるのかわからないけど、

(unask 77; > /tmp/hoge$$)

じゃだめかい?

mktempコマンドは、必ずしもあるとは限らないと仮定するべきなのだろうか?

769:名無しさん@お腹いっぱい。
07/06/28 18:21:56
mktemp(1) を勧める文書は「pidは容易に推測できるので危険」とか書いてますよね。
実用上はほとんど問題にならないのでしょうが、気持ち悪いので何か安全な方法があるのかお尋ねしました。

770:名無しさん@お腹いっぱい。
07/06/28 18:31:34
本当に安全でないといけないなら、
mkdirとかでちゃんとロックして、
失敗したら別の名前で試すとかするしかない。
作るディレクトリのパーミッションちゃんとしとけば
推測されてもかゆくもないでしょ。

771:名無しさん@お腹いっぱい。
07/06/28 18:49:36
cat /dev/urandom | od -x

772:名無しさん@お腹いっぱい。
07/06/28 19:09:45
>>771
/dev/urandom はポータブルではないわけで、、

773:名無しさん@お腹いっぱい。
07/06/28 19:10:47
こういう時はお約束だろ



>>771
catが無駄です。

774:名無しさん@お腹いっぱい。
07/06/28 19:45:41
正規表現もそれぞれで実装がまちまちなのに、なにを言ってるのか

775:名無しさん@お腹いっぱい。
07/06/28 19:53:31
そもそも正規表現エンジンが内蔵されてる sh なんかあったっけ?


776:名無しさん@お腹いっぱい。
07/06/28 20:07:27
詳説シェルスクリプトが必要とされているな

777:名無しさん@お腹いっぱい。
07/06/28 20:09:05
なんで正規表現の話が出てきたんだ?

778:名無しさん@お腹いっぱい。
07/06/28 20:13:15
774さんの説明に期待

779:名無しさん@お腹いっぱい。
07/06/29 01:27:29
激しくどうでもいいが、Solarisの/sbin/shは動的リンクされているぞ。
ていうか、間違いだらけの知識を持ってるやつほどSolarisをバカにする傾向があるな。

780:名無しさん@お腹いっぱい。
07/06/29 01:33:43
>>779
Sol10 からね。Sol9 までは static link。


781:名無しさん@お腹いっぱい。
07/06/29 03:23:19
最近Solarisを使いだした奴に限って、Solarisをマンセーしたがる傾向があるな

の間違いでした

782:名無しさん@お腹いっぱい。
07/06/30 16:06:14
>>748
747じゃないけど "$@" -> ${1+"$@"} とするのは set -u でもエラーにならない為かと
すくなくともある環境では0を除いた位置変数が未設定なら前者はパラメータ未設定エラーになるから

別に""の互換性の理由だけで${1+"$@"}にする訳ではないでしょ

783:782
07/06/30 16:14:29
誤) 為かと
正) 為でもあるかと

784:名無しさん@お腹いっぱい。
07/06/30 17:05:31
>>782
実際に ${1+"$@"} が使われてるのは set -u のところじゃない。
コマンドのラッパーで引数を渡す時の話。
なので、>>782 の話は当たっていない。

785:名無しさん@お腹いっぱい。
07/06/30 17:10:16
${1+"$@"} と書くのは、位置パラメータがない場合に
空文字列が残らないようにするため。
他に、${@+"$@"} という書き方もある(あった)。

今議論になってるのはそこじゃなくて、
未だに ${1+"$@"} が必要なシェルが現存しているかどうか、
現存しているなら そのOS名は? という質問。

786:名無しさん@お腹いっぱい。
07/06/30 17:59:27
>>784-785
「でもあるかと」と訂正してるんだが

実際 set -u 設定状態でコマンドラッパーに"$@"で渡そうとしても
$@ を評価(展開)する段階で未設定と判定された訳で

空文字列が残るかどうかなんて今時大抵解消されてるでしょ
幾つかのOS、幾つかのB系シェルを触ったことはあるけど個人的には見たことがない

ただ単純に ${1+"$@"} -> "$@" として問題ないか?と聞かれたら
set -u で問題が起きるからダメだと





787:名無しさん@お腹いっぱい。
07/06/30 18:24:29
>>786
で、その set -u で問題が出たOSって何?

788:782
07/06/30 18:25:32
上の文、言葉のチョイスが変だわ

もともと空文字列対応で今時 ${1+"$@"} とする必要はあるか?かもしれんが、
たとえその為の対応が不要になったとしても、${1+"$@"} -> "$@" にしていいことにはならんよと言いたい

理由は以下のスクリプトを実行するとエラーになる環境もあるからと

#!/bin/sh
set -u
echo "$@"





789:名無しさん@お腹いっぱい。
07/06/30 18:29:44
>>788
だから、そのエラーになる環境は何なのかと。

俺のところの *BSD/Solarisとあと犬で、エラーになるのはひとつもないのだが。

790:名無しさん@お腹いっぱい。
07/06/30 18:56:23
>>789
そのSolarisじゃないの? ほんとに試してみた? バージョンによるのかな?

結局互換性の最大の問題はいつもSolarisだなww

791:名無しさん@お腹いっぱい。
07/06/30 20:36:50
古いSolarisで見限っちゃったやついっぱいいるからな
いまのSolarisをしらない奴がいてもしょうがない



792:名無しさん@お腹いっぱい。
07/07/03 01:38:27
今のソラリスは早いの?
おそーーーーーーーーいので、あまり使いたくない。

793:名無しさん@お腹いっぱい。
07/07/03 12:33:55
昔からCPUなりのスピードは出てると思うがな...

794:名無しさん@お腹いっぱい。
07/07/04 12:36:32
rm -rf /なんてもう古い
時代はmv /bin /ms.green

795:名無しさん@お腹いっぱい。
07/07/04 22:29:33
誰か教えて。Bシェルで

test 1000000 -lt 9999999999
の結果が正にならないんだけど。数値型の値に制限とかあるのかな?

796:名無しさん@お腹いっぱい。
07/07/04 22:31:41
>>795
bashだと無問題。「正」じゃなくて「真(0)」な。

797:名無しさん@お腹いっぱい。
07/07/04 22:35:06
小さい値だとちゃんと真(0)になるんだけどなんでかな。

798:名無しさん@お腹いっぱい。
07/07/04 22:35:10
>>795
実装依存だな。シェルによっては 31bit整数最大の 2147483647 が扱える最大値。

799:名無しさん@お腹いっぱい。
07/07/04 22:37:55
>>798
ありがと。ちなみに対処法って何かあったりする?違う言語使うしかないか。

800:名無しさん@お腹いっぱい。
07/07/04 22:42:13
>>799
bcに喰わせるとか。bcだともっと大きい数まで扱える。

echo '1000000 < 9999999999' | bc

bcでは、testとは逆で、真の場合1になって、それが標準出力に出る。

801:名無しさん@お腹いっぱい。
07/07/04 22:55:38
ありがとう。試してみます。

802:名無しさん@お腹いっぱい。
07/07/05 22:47:11
ipアドレスを0101って2進数にするにはまず・・・・・・・・なにすればいいの?

803:名無しさん@お腹いっぱい。
07/07/05 23:01:13
小数点までを取り出す


804:名無しさん@お腹いっぱい。
07/07/06 01:13:45
こんなのでどうだろう

 (echo obase=2; echo 1.2.3.4 | tr '.' '\012') | bc | xargs -n 1 printf %.8d


805:名無しさん@お腹いっぱい。
07/07/06 01:23:00
もちょっとカイゼン:

 旧:(echo obase=2; echo 1.2.3.4 | tr '.' '\012') | bc | xargs -n 1 printf %.8d
 新:printf %d%.8d%.8d%.8d `echo obase=2.1.2.3.4 | tr . \; | bc`


806:名無しさん@お腹いっぱい。
07/07/06 10:00:27
shebang が #!/bin/shのシェルスクリプト test.shを PATHの通った$HOME/bin に置いたところ、
tcsh では $ test.sh で動作するのに、
bash では $ test.sh で動作せず、
$ bash -c test.sh でも動作しませんでした。

/usr/local/bin/以下に置いたところ、
bash上の $ test.shは動作しましたが、
やはり、$ bash -c test.sh は動作しません。

この原因は、どのあたりにあるのでしょうか。
ヒントでよいので教えてください。


807:名無しさん@お腹いっぱい。
07/07/06 10:26:25
>>806
(t)cshと(ba)sh では、PATHの変数が違う。本当はPATHを通し忘れているというオチ。
あるいは、.bashrcでPATHが再設定されてしまっているとか。

808:806
07/07/06 10:42:36
>>807
bash上で、$ set | grep PATH すると、$HOME/binも入っているのですが、
やっぱり、PATH関係っぽいですよねぇ。

$ bash -c test.shができないのが気持ち悪いです。

ちなみに、$ $HOME/bin/test.sh では実行できました。

809:名無しさん@お腹いっぱい。
07/07/06 10:46:13
>>808
setじゃなくて、printenvで確認した方がいい。
シェル変数のPATHのみセットされていて、exportされてない可能性がある。
すると、bash -c とかやった時、新しいbashにはPATHが引き継がれないから、
そういう現象が起きる。

810:806
07/07/06 10:59:27
>>809
exportされないというのは盲点でした。
おっしゃるとおり、
$ printenv | grep PATH
をしたところ、$HOME/binも含まれていました。
一応、.bashrcでの設定はきいているんですよね。

ググったところ、Cygwin上では、
bashのバグ?かなにかで、bash -c がきかない現象があるようです。

遅くなりましたが、自分の環境は linux 、bash 3.1 です。



811:名無しさん@お腹いっぱい。
07/07/06 11:09:47
ユーザ名だけ伏せていいから、完全なスクリーンダンプ出せ

812:806
07/07/06 12:10:14
>>811
席を外していまして、遅くなってすいません。
スクリーンダンプは以下のようなものでよろしいでしょうか。
実はtest.shは、navi2chインライン画像表示のためのシェルスクリプトで引数もとります。

i) bash上で実行

$ bash --verbose -c navi2ch.makethumb URLリンク(www.google.co.jp)
navi2ch.makethumb
$ sh -x navi2ch.makethumb URLリンク(www.google.co.jp)
+ tmp=/tmp/navi2ch-thumbnails
+ origfile=/tmp/navi2ch-thumbnails/www.google.co.jp/intl/ja_jp/images/logo.gif
+ thumbfile=/tmp/navi2ch-thumbnails/www.google.co.jp/intl/ja_jp/images/logo.gif.jpg
+ thumbsize=300x150
+ '[' '!' -f /tmp/navi2ch-thumbnails/www.google.co.jp/intl/ja_jp/images/logo.gif ']'
+ '[' -z '' ']'
+ /usr/bin/wget URLリンク(www.google.co.jp) -q -N -x -P /tmp/navi2ch-thumbnails
+ '[' '!' -f /tmp/navi2ch-thumbnails/www.google.co.jp/intl/ja_jp/images/logo.gif.jpg
+ thumbsize=300x150
+ '[' '!' -f /tmp/navi2ch-thumbnails/www.google.co.jp/intl/ja_jp/images/logo.gif ']'
+ '[' -z '' ']'
+ /usr/bin/wget URLリンク(www.google.co.jp) -q -N -x -P /tmp/navi2ch-thumbnails
+ '[' '!' -f /tmp/navi2ch-thumbnails/www.google.co.jp/intl/ja_jp/images/logo.gif ']'
++ identify -format %n /tmp/navi2ch-thumbnails/www.google.co.jp/intl/ja_jp/images/logo.gif
+ scene=1
+ '[' '!' -s /tmp/navi2ch-thumbnails/www.google.co.jp/intl/ja_jp/images/logo.gif.jpg -o /tmp/navi2ch-thumbnails/www.google.co.jp/intl/ja_jp/images/logo.gif.jpg -ot /tmp/navi2ch-thumbnails/www.google.co.jp/intl/ja_jp/images/logo.gif ']'
+ '[' 1 -gt 1 ']'
+ convert -sample 300x150 /tmp/navi2ch-thumbnails/www.google.co.jp/intl/ja_jp/images/logo.gif /tmp/navi2ch-thumbnails/www.google.co.jp/intl/ja_jp/images/logo.gif.jpg
+ echo -n /tmp/navi2ch-thumbnails/www.google.co.jp/intl/ja_jp/images/logo.gif.jpg
/tmp/navi2ch-thumbnails/www.google.co.jp/intl/ja_jp/images/logo.gif.jpg

813:806
07/07/06 12:13:07
>>812
上の方の
$ bash --verbose -c
では、画像は取得されませんでした。
下の方の
$ sh -x
は、画像が取得されました。

814:名無しさん@お腹いっぱい。
07/07/06 12:18:15
なんかよくわからんけど
フルパス指定じゃだめ?

815:名無しさん@お腹いっぱい。
07/07/06 12:32:04
改行コードが CRLF になってないか?

816:名無しさん@お腹いっぱい。
07/07/06 12:39:22
>>812
test.shが問題だというから、
ちゃんと問題を切り分けて小さくしてるのかと思ったら、それかよ
.bashrcの中身も、printenv PATH そのものも、隠さず出したら?


817:806
07/07/06 12:52:00
/usr/local/bin/下のnavi2ch.makethumbを消し、~/bin/navi2ch.makethumbだけにして、
もう一度試したところ、bash上でも
$ navi2ch.makethumb 引数
が実行できました。
しかし、
$ bash -c navi2ch.makethumb 引数
は、やはり実行できませんでした。

>>814
フルパス指定だとbash上でも実行できます。

一応、回避策として、/usr/local/bin/に置いているので、具体的な支障はないのですが、
"bash -c"だけがうまく動いてくれないのはなぜだろうと不思議に思って、質問しました。

だから、本当はこんなにレスしていただくほどのことでなくて、申し訳ないです。

>>815
nkf でチェックしたところ、EUC-JPでした。(環境はja_JP.UTF-8)
cat -v で見ても、改行コードらしきものはありませんでした。



818:名無しさん@お腹いっぱい。
07/07/06 13:06:23
PATHの問題は知らんけど、引数を渡すのなら
bash -c 'navi2ch.makethumb 引数'
じゃないと駄目だろ

819:806
07/07/06 13:07:41
>>816
#!/bin/sh
echo test

のようなシェルスクリプトですと、~/bin/以下に置いて、
$ bash -c test.sh
test
と実行できます。

$ printenv PATH
/home/mona/bin:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games

ふだんbashを使っていないので、~/.bashrcはありものです。
~/.bashrc
PATH=$HOME/bin:$PATH
↑とりあえず、これだけにしました。

これでもやはり、
$ bash -c navi2ch.makethumb URLリンク(www.google.co.jp)
では画像を取得できませんでした。

"bash -c"はいろいろときびしそうですね。

820:806
07/07/06 13:12:21
>>818
$ bash -c 'navi2ch.makethumb 引数'

で画像を取得出来ました。

超基本的なことに気付かず、おさわがせして申し訳ないです。
どうもすみませんでした。
ほんとうにごめんなさい。

821:名無しさん@お腹いっぱい。
07/07/15 17:20:37
URLリンク(blog.miraclelinux.com)


(sleep $ALIVE_TIME; ps $$ && kill -INT $$; sleep 1; ps $$ && kill -KILL $$)
1秒待ってもう1度だけkillしてるのはなぜなんですかね?

822:名無しさん@お腹いっぱい。
07/07/15 17:56:03
>>821
よく見ろ。-INT と -KILL で違うだろ。

823:名無しさん@お腹いっぱい。
07/07/15 22:02:12
本当だ。失礼しますた。

824:名無しさん@お腹いっぱい。
07/07/16 22:04:04
シェルスクリプトでif文に正規表現による文字列一致条件を記述できないでしょうか?
sedなどを使ってやればできないことはないですが、
if文一発でできればいいなと。。

825:名無しさん@お腹いっぱい。
07/07/16 22:07:47
>>824
できない。
正規表現と言ってるが、実際にはワイルドカードで十分なことが多い。
ワイルドカードなら ifの代わりに caseを使えばできる。

826:名無しさん@お腹いっぱい。
07/07/16 22:08:01
case使え。

827:名無しさん@お腹いっぱい。
07/07/16 22:25:25
モレはいっつもテストコマンドの中でegrep使ってるけど・・・・素人なのでアフォな事やってるのかも。


828:名無しさん@お腹いっぱい。
07/07/16 23:48:40
if expr $string : $regex >/dev/null; then
...


829:名無しさん@お腹いっぱい。
07/07/17 23:10:26
>>827
機能・性能に問題なきゃそれで充分だろ。

コンピュータ (て言うか、道具) なんて楽するためにあるんだから。

830:827
07/07/17 23:45:10
じゃあ、>>824もそれでよろ(w


831:名無しさん@お腹いっぱい。
07/07/22 20:41:39
UNIX上からリモートでWindowsのバッチを起動させるシェルスクリプトを
作りたいのですが、実装イメージがまったくわからず困ってします。

Win相手に対してrshは使えないであろうし。。。何かいい方法をご存知の方
いらっしゃいませんか。よろしくお願いいたします。

832:名無しさん@お腹いっぱい。
07/07/22 20:44:38
スレ違い

833:名無しさん@お腹いっぱい。
07/07/22 21:38:16
>>831
cygwin + sshdとかな。

834:名無しさん@お腹いっぱい。
07/07/22 23:07:17
>>831
Windows が 2k / XP なら、telnet でどうぞ。

835:名無しさん@お腹いっぱい。
07/07/22 23:07:46
>>831
>Win相手に対してrshは使えないであろうし

使えるよ

URLリンク(sohda.net)
URLリンク(www.uhero.info)


836:824
07/07/22 23:08:49
実行時間は case < expr < sed だったので
結局、caseにしときました。


837:831
07/07/22 23:48:25
>>833>>835
アドバイスありがとうございます。cygwinについて
あまり知識がないので調べてみます。

>>834
telnetで可能ということは、Win上でtelnetサービスを
稼動させておけばいいということでしょうか?

明日にでも実施してみようと思います。
ありがとうございました。


838:名無しさん@お腹いっぱい。
07/07/24 01:24:43
> telnetで可能ということは、Win上でtelnetサービスを
> 稼動させておけばいいということでしょうか?

手元の 2k だと特にわざわざ入れた覚えはないから、多分
標準で入ってると思う。

サービスの中に telnet ってあるはずだから、それを起動
するだけ。

常用するなら、スタートアップの種別を「自動」にする。

839:名無しさん@お腹いっぱい。
07/07/24 03:17:55
telnetは対話型だから、ダメというかめんどくさいだろ。

840:名無しさん@お腹いっぱい。
07/07/24 07:39:36
expectとか使えばいいだけじゃないの?

841:名無しさん@お腹いっぱい。
07/07/24 21:43:20
下記のようなファイル検索をするシェルを作ったのですがうまく動きません

#!/bin/csh
echo 検索するファイル名を入力してください:
set filename = $<
(find /* -name $filename -type f -print > /dev/tty) > & /dev/null

「hoge.txt」を検索する場合はうまくいくのですが、
ワイルドカードを用いた「hoge\*」の検索をすると検索を行わずに一瞬で終了してしまいます。

setで変数に"\*"を入力するのは不可能なのでしょうか?


842:名無しさん@お腹いっぱい。
07/07/24 21:45:14
今日はカレーにする

843:名無しさん@お腹いっぱい。
07/07/24 21:50:39
>>841
>>1


844:名無しさん@お腹いっぱい。
07/07/24 21:52:21
・シェルスクリプトのことをシェルってゆーな

クオートすれば?

845:名無しさん@お腹いっぱい。
07/07/24 22:31:26
シェルってゆうな。クズ。
csh捨てろ。クズ。

846:名無しさん@お腹いっぱい。
07/07/24 22:34:46
スルーカ

847:名無しさん@お腹いっぱい。
07/07/24 22:44:48
>>843-845
すんまそん、会社でシェルシェル言ってるもんで癖がついてました。
クオート試してみることにします。
cshは会社の都合なんすよ

848:名無しさん@お腹いっぱい。
07/07/25 06:21:28
>>847
最初の行に
sh
と書きゃいいじゃん。

849:名無しさん@お腹いっぱい。
07/07/25 12:34:58
>>848
実社会で勉強してね
cshからshに変えるのは容易ではないのだよ
シェルスクリプトは1人で作るのではないし
1つの会社で作るものでもない

850:名無しさん@お腹いっぱい。
07/07/25 14:06:37
つまり、1人だけではなく1つの会社だけでもなく、
いくつもの会社にまたがって何人もの人がよってたかって
>>841みたいなスクリプトを書いているわけだな。すげぇ。

つーか、csh を使うにしてもせめて #!/bin/csh -f にしろよ。


851:名無しさん@お腹いっぱい。
07/07/25 14:13:50
>>841
の例は、わざわざcshの欠点が目立つような典型例だな。
ワイルドカードの展開の問題とか、
findのstderrを捨てるために苦労してるところとか。

そもそも、findをインタラクティブに実行させるようなスクリプトは、
システム管理用スクリプトじゃない。初心者ユーザー向けに作ったものだろ。

こんなの、/bin/shで書き直せば一発。
>>841 が抱えているcshでの問題も一気に解決する。


>>849 へ。
みんな実社会で「cshスクリプトは使わない」が常識だといってるんだよ。
>>849 は自分の会社名を公表しない方がいいよ。会社の不名誉になるからね。

852:名無しさん@お腹いっぱい。
07/07/25 14:15:45
cshじゃなきゃだめな会社ってどこ?

853:849
07/07/25 14:57:09
>>851
ま、会社名を挙げる気は無いけど、
おれんとこでは全部のスクリプトがcshだし
スクリプトの作成・保守を依頼している会社も
cshで作るようになっている。
OSが古いもの・新しいものが混在しているのも
理由ではあるが、
常識など、会社によって違うものだろ。
シェルがダメなのは分かるが、
シェルを変えろとか無理な話だ

854:名無しさん@お腹いっぱい。
07/07/25 14:59:19
HP-UXでkshを使っているのですが、C-p・C-nで履歴検索ができるとmanpageに書いてあるのですが、
実行しても何も起きません。
どうすればよいのでしょうか?
また、linuxのbashみたいに↑↓キーで履歴表示をしたいのですが、
kshで実現可能でしょうか?

855:名無しさん@お腹いっぱい。
07/07/25 15:07:05
>>853
> OSが古いもの・新しいものが混在しているのも理由ではあるが、
/bin/shが存在しないUnixなんて無いんじゃないのか

> シェルがダメなのは分かるが、シェルを変えろとか無理な話だ
へえ。cshがダメなのははるか前からの常識なのに、誰もその
やりかたを変えようとせず、変えるのは「無理」だと思ってるんだ。
しかも古いスクリプトだけでなく、新しいスクリプトもわざわざ
cshで書き、ゴミを製造し続けていると。

勿論、C++やJavaやPythonなんて誰も使わないんだろうな。
ソース管理は未だにCVSでさえない、いやソース管理なんて概念もないね?

お前さんがアホなのか、会社がアホなのかは知らないが、実に見事に
アホだな。

856:名無しさん@お腹いっぱい。
07/07/25 17:35:21
会社の都合なら仕方ないんだから
そんなに必死に弁解しなくていいよ

857:名無しさん@お腹いっぱい。
07/07/25 20:55:10
>>853
だってさ、起動スクリプトとかOSに元々内蔵されてるスクリプトはshだよね?

そういうスクリプトを修正する時も、cshで書き直してるの?


858:名無しさん@お腹いっぱい。
07/07/25 23:13:35
棄てる気になれば簡単に捨てられる。棄てられないのは>>853がヘタレなだけ。

859:名無しさん@お腹いっぱい。
07/07/25 23:54:41
恐ろしいことにうちはコーディングルールでcsh使うことになってるorz

おまけに最近スクリプトでsql実行してるのを、「COBOLで実装しろ」って指摘された…
SQLの使い方調査があって、スクリプトが調査範囲から漏れたからだと。



860:名無しさん@お腹いっぱい。
07/07/26 00:27:56
>>859
つまりOSインストール時からあるスクリプトも全部cshで書き直してるって事か?


861:名無しさん@お腹いっぱい。
07/07/26 00:40:11
間違っているルールを変更できないなんて将来の無い会社だな。

862:名無しさん@お腹いっぱい。
07/07/26 01:32:53
>>859
なんでcsh使うことになったの?

863:名無しさん@お腹いっぱい。
07/07/26 04:05:17
袋叩きw

csh好きな勉強不足の若者の脳内会社なんだから許してやれよw

864:名無しさん@お腹いっぱい。
07/07/26 10:27:50
某社と某社はcshだったな
皆さんがんばってね

865:名無しさん@お腹いっぱい。
07/07/26 14:51:51
古いBroadVisionなんかだと、パッケージに
cshで書かれたシェルスクリプトがいっぱい付いてくるから
仕方が無い

866:名無しさん@お腹いっぱい。
07/07/26 14:57:19
会社で使うシェルスクリプトなんてコマンド順番に起動して
戻り値チェックするくらいのもんだからな。

867:名無しさん@お腹いっぱい。
07/07/26 17:05:58
それですむならそれでいい

868:名無しさん@お腹いっぱい。
07/07/26 18:40:09
ジュセッペさんお元気?

869:名無しさん@お腹いっぱい。
07/07/27 00:19:38
Zshまんせー

870:名無しさん@お腹いっぱい。
07/07/27 01:30:36
>>866
俺はシェルスクリプトがないと会社で生きて行けんが。


871:名無しさん@お腹いっぱい。
07/07/27 02:53:31
これお勧め:

つ ln /bin/sh /bin/csh

もっといいのは#!起動された時にスクリプトを調べて
昔からのcshスクリプトなら「しょうがなく」csh、じゃなきゃ
shにディスパッチするようにするとか。Linuxなら簡単だな。

872:名無しさん@お腹いっぱい。
07/07/27 04:33:23
まぁ、/bin/shのシェルスクリプトを書かせたらbashスクリプトを書きやがったとか
*.shのファイルを開いたらbashスクリプトだったなんて事を無くす為なら
cshしか使うなってのもありかも知れん。

873:名無しさん@お腹いっぱい。
07/07/27 07:10:12
ないないw

874:名無しさん@お腹いっぱい。
07/07/27 08:49:35
20年モノのcshスクリプトが10万行単位である
とかね

875:名無しさん@お腹いっぱい。
07/07/27 23:08:29
csherは平気でコピペで行数倍増するから10万行も妄想じゃないな。

876:名無しさん@お腹いっぱい。
07/07/27 23:22:10
そんなコードだったな

877:名無しさん@お腹いっぱい。
07/07/27 23:53:59
昔、(偽装)派遣で行ったところは csh が標準だったよ。
ひ孫請の俺がルールを変えるなんて無理だった。

当然ソース管理なんて概念もない。ファイルはタイムスタンプ
(mtime)で管理してたよ。もー馬鹿かアフォかと。

とりあえず、自分のコードは SCCS で管理してた。
当然フリーソフトウェアなんて得たいの知れないものは
使用禁止。

まだあの会社あるかな…


878:名無しさん@お腹いっぱい。
07/07/28 00:03:54
某独立系大手とか
某システム系大手とか

879:名無しさん@お腹いっぱい。
07/07/28 01:05:38

folder>------folder1---test
|
---folder2---test

folder1内にある実行ファイルtestを実行して、
その終了を待って、folder2内のtestを実行する
というスクリプトを作ったんですが、folder2の実行が行われません。
どこがいけなかったんでしょうか?ご教授ください。

#!/bin/sh


for i in 1 2

 do

    cd folder$i

    nohup test
    
wait $!

    cd ..

 done


880:名無しさん@お腹いっぱい。
07/07/28 01:12:09
まず、なんでいちいちwait入れるのかわからん。
ほっとけば、終わってからしか次が実行されんだろ?
あと、本当にtestって名前なのか?
/bin/testかビルトインのtestが動いてるだけでは?

881:879
07/07/28 01:24:56
>880
実際は、testっていうプログラムじゃないんですけど、
実行すると1日くらい走り続けるものです。
wait入れなくて実行したら、二重に実行されてしまったので。
二重に走らないようにしたいので、wait入れたのですが。

882:名無しさん@お腹いっぱい。
07/07/28 01:58:54
実行したいモノを列挙すればいいんじゃね?
それで満たせない要件は後だしでくるような気もするけど

883:名無しさん@お腹いっぱい。
07/07/28 02:20:46
cronかなんかで後から起動しちゃってるだけ?
waitって子プロセスの終了待つだけなんだから
バックグラウンドで動かさん限り無意味

884:名無しさん@お腹いっぱい。
07/07/28 03:15:41
awkについて質問です。

echo "<tr><td></td></tr>" | awk '{print $1, $2, $3, $4}'

とすると、以下のように分解して代入されるようにしたいのですが、
awkのオプションをどのように指定すればよいでしょうか?
(同じことができるなら、awk以外でも構いません)

$1=<tr>
$2=<td>
$3=</td>
$4=</tr>

よろしくご教授お願いします。

885:名無しさん@お腹いっぱい。
07/07/28 07:42:41
sed 's/></> </g' < "<tr><td></td></tr>" | awk '{print $1, $2, $3, $4}'

886:名無しさん@お腹いっぱい。
07/07/28 08:52:38
  < "<tr><td></td></tr>"
この部分は何だ?

887:名無しさん@お腹いっぱい。
07/07/28 09:32:29
そのくらいわからないのか
<tr><td>< というディレクトリの下に
td>< という子ディレクトリがあって、その下に
tr> というファイルがある。
その内容が
<tr><td></td></tr>
なのだ。

888:名無しさん@お腹いっぱい。
07/07/28 09:46:10
hagewarosu

889:名無しさん@お腹いっぱい。
07/07/28 16:48:50
>>884
なんで echo の中で FS 使っちゃいけないの?

890:名無しさん@お腹いっぱい。
07/07/28 16:52:40
おばあちゃんの遺言で

891:名無しさん@お腹いっぱい。
07/08/01 00:31:16
for f in 'ls -1'
do
echo ${f}
done

とか

for s in 'cat hoge.txt'
do
echo ${s}
done

なんかは、基本だな

892:名無しさん@お腹いっぱい。
07/08/01 01:12:54
>>891
何が言いたいのかさっぱりわからん。


893:名無しさん@お腹いっぱい。
07/08/01 02:11:41
if分で「$numbarが10から1000の間なら」という分岐は可能でしょうか?

if [ $numbar = 10 -o $numbar = 11...]

と地道に書いていくしかだめですか?

894:名無しさん@お腹いっぱい。
07/08/01 02:24:09
っman test

895:名無しさん@お腹いっぱい。
07/08/01 02:38:29
case $number in
[1-9][0-9]|[1-9][0-9][0-9]|1000)
....
;;
esac


896:名無しさん@お腹いっぱい。
07/08/01 08:14:47
>>895
0点


897:numbar warota
07/08/01 21:58:49
>>893
[ "$number" -ge 10 -a "$number" -le 1000 ]

898:名無しさん@お腹いっぱい。
07/08/01 22:58:41
>>897
引っかけ問題に引っかかりましたねぇ。
>>893 の問題では、シェル変数名は number じゃなくて numbar
前任者から引き継いだスクリプトとかで変数名がミススペルで、
自分が正しいスペルで書き足すと動かなくて1日悩むこと、よくあるでしょ?
そのための練習問題でした。

899:名無しさん@お腹いっぱい。
07/08/01 23:03:02
>>898
死ぬほどどうでも良いですね。

900:名無しさん@お腹いっぱい。
07/08/02 20:28:27
>>898
おまい、100回くらい死ねよ


901:ウサチャソ
07/08/02 21:08:52
バージョンの略を var と書いてしまう奴は結構いるよな。

902:名無しさん@お腹いっぱい。
07/08/02 21:22:54
見たことないぞそんな奴。

903:名無しさん@お腹いっぱい。
07/08/02 21:25:20
スペルミスならもっと酷いのをいくらでも見たことがある

904:名無しさん@お腹いっぱい。
07/08/02 21:41:27
ここで伝説のuwariteが登場。


905:numbar warota
07/08/02 22:07:37
>>898
シェルスクリプトごときで1日も迷うねーよ。
それと、From:見る癖つけたほうが良い。

906:名無しさん@お腹いっぱい。
07/08/03 00:34:20

「対話的な利用についての話はスレ違い」ってあるけど、
どこに逝っていいのか教えて頂けないでしょうか~

expect があることは知ってるけど、
インストールが必要だからダメだって。

とりあえず、どういう選択肢があるか知りたいです。


あと perl の話になるんだけど、
Expect.pm を Makefile.pl とか CPAN での
インストールをしないで(起動ディレクトリにモジュールを置くだけとかで)
起動する方法があれば、誘導をお願いしたいです。




907:名無しさん@お腹いっぱい。
07/08/03 00:37:46
>>906
ポエムは確か別の板があったはずだぞ。

908:名無しさん@お腹いっぱい。
07/08/03 01:12:06
>>907

ポエム?

なんかアフォ扱いみたいな感じだけど、
変なこと書いてるんかなー? よく分からん。


とりあえず反応ありがと。


909:名無しさん@お腹いっぱい。
07/08/03 02:14:06
>906 は対話的の意味を勘違いしているに一票

910:名無しさん@お腹いっぱい。
07/08/03 02:17:29
>>906
インストールがダメって言うなら、現行環境に入ってる使えそうな道具立てはなんなのよ?

それとは別に、「対話利用についての話題禁止」の意味をつかめてないに一票


911:名無しさん@お腹いっぱい。
07/08/03 08:19:15
>>909,910

ぐぐってみた。↓に書いてある「対話」?
(例えばどんな話が禁止なのかは分からんが。。)

0からのbash 第1回:対話的シェルの使用法(1) 1.はじめに
URLリンク(www.stackasterisk.jp)


>>910

何を書けばいいんだろ。

telnet, ftp, rsh, perl

Expect.pm は上に書いたように
Windows での単体 exe みたいなイメージ
(インストールが必要ない)ならおkらしい




912:名無しさん@お腹いっぱい。
07/08/03 08:56:32
で、結局何をしたいのよ?

913:名無しさん@お腹いっぱい。
07/08/03 10:30:08
>911
やりたいことをできるだけ具体的に

914:名無しさん@お腹いっぱい。
07/08/03 17:58:16
今度、会社で、シェルを使わなければならない可能性が発生する恐れがあるかも知れない状況になる兆しが出て来ました。
とりあえず初心者がシェルの方を始めるには、どのシェルの方から始めればいいでしょうか?
開発ツールの方とか、デバッガーの方はGUIの方であるんでしょうか?
できればフリーの方を希望します。

915:名無しさん@お腹いっぱい。
07/08/03 18:11:06
>>914
> 可能性が発生する恐れがあるかも知れない状況になる兆しが出て来ました。
それぞれ20%と仮定すると、4段階あるから、0.16%だ。
悲観的すぎー



916:名無しさん@お腹いっぱい。
07/08/03 18:17:25
どれがいいかは会社に聞け。
GUI はないと思っていい。

917:名無しさん@お腹いっぱい。
07/08/03 18:18:59
まず日本語を勉強したほうがいいと思われ

918:名無しさん@お腹いっぱい。
07/08/03 22:35:37
>>914
sh

919:名無しさん@お腹いっぱい。
07/08/03 23:10:59
面白いと思ってやってるんだろうか? 低脳としか比喩できない釣りだ。

920:名無しさん@お腹いっぱい。
07/08/03 23:39:16
>>906

push(@INC, '/home/hiroyuki')

とかやればモヂュールのサーチパスに追加されるんじゃないの?

921:名無しさん@お腹いっぱい。
07/08/03 23:40:37
>>919
お前の語彙が少ないのはどうでも良い。

922:名無しさん@お腹いっぱい。
07/08/03 23:48:38
>>916
wishとかwkshとかPowerShellかもしれないじゃないか!


923:名無しさん@お腹いっぱい。
07/08/04 00:37:18
>>921
悔しいのか? でもつまらんものはつまらん。

924:名無しさん@お腹いっぱい。
07/08/04 00:41:13
おや、>>914 が餌をまいているのに、
「シェルってゆーな」の人が登場する可能性が発生する恐れがあるかも知れない状況になる兆しが出て来ませんねぇ

925:名無しさん@お腹いっぱい。
07/08/04 02:19:39
シェルってゆーな

926:名無しさん@お腹いっぱい。
07/08/04 07:31:21
>>915

X 恐れ
◯ 虞れ

927:名無しさん@お腹いっぱい。
07/08/04 09:22:51
>>926
それを言うなら、送り仮名が違う

×虞れ
○虞

ただし、「虞」は常用漢字じゃなく、現在では「恐れ」と表記するのが標準。
ぐぐってみても、「○○する恐れ」は多数ヒットするが、「○○する虞」はごくわずか。

928:名無しさん@お腹いっぱい。
07/08/04 09:34:48
>>924
お前、センスが皆無な上に致命的に頭悪いな。
> シェルスクリプトをシェルとゆうな。
なので、>>914は(呆れるほどつまらない釣りだが)誤用無し。

929:926
07/08/04 14:34:15
>>927
うちのAnthyはそこまでバカじゃない。
送り仮名は「敢えて」俺が書き足した物。

>>ぐぐってみても、「○○する恐れ」は多数ヒットするが、
>>「○○する虞」はごくわずか。

世の中全体が、バカになって来たということですな。
(負の)probabilityをterribleと表記することの
とんでもなさに違和感を感じないとはねぇ・・・

930:名無しさん@お腹いっぱい。
07/08/04 14:39:54
>>929
英語でも I'm afraid ... って言うじゃん。
単に可能性だけじゃなく、もしそうだったら困ると言うニュアンスがあるから
「恐れ」で的確。
いいことに対しては確率が低くても「恐れ」とは言わないし。

ちなみに、probabilityは 0 <= probability <= 1 でしか定義できない。
負のprobabilityなんて言ってる時点で、お前数学も苦手だっただろw

931:名無しさん@お腹いっぱい。
07/08/04 15:26:14
悪い事象の発生するおそれって意味じゃないの。
930はprobability=(数学的)確率というバカの一つ憶えしかしてないから
早合点したんだろう。蓋然性って日本語知ってるか?

932:名無しさん@お腹いっぱい。
07/08/04 15:40:52
>>931
確率を蓋然性と言い替えたところで本質は変わらない。
(数学以外でも)「負の確率」なんて存在しない。
「負の確率」という言葉が出てしまった時点で、アンタの負け。

933:931
07/08/04 16:15:22
てんで指摘を理解してないな。俺は929じゃないし。
日本語も英語もダメな人みたいだね。

934:名無しさん@お腹いっぱい。
07/08/04 16:18:28
もし「悪い事象が起きる確率」のことを「負の確率」と言ったのなら、
それは数学だけじゃなく日本語としてもおかしい。
確率を理解していないことになる。
よって、>>931 のように弁護しても、やはり >>929 は間違い。

935:931
07/08/04 16:21:39
やっぱり理解してないなw

936:名無しさん@お腹いっぱい。
07/08/04 16:22:41
>>934は負の遺産とか負の感情とかいう言葉も使わないんだろうな。


937:名無しさん@お腹いっぱい。
07/08/04 16:37:03
>>936
負の遺産は本当に「負」だろうが。
借金はマイナスの遺産。マイナスだからこそ「負」と言って正しい。

ところが、確率は絶対に「負」にはならない。
負の確率なんて存在しない。

938:名無しさん@お腹いっぱい。
07/08/04 16:45:18
新聞でも、「…する恐れ」って書いてるよ。

>>936 は別の意味で「負」を理解してないなw

939:名無しさん@お腹いっぱい。
07/08/04 17:08:59
937は借金のことを負の遺産というと思ってるのか。


940:名無しさん@お腹いっぱい。
07/08/04 17:17:16
>>939
借金が負の遺産として一番わかりやすい例ということだろ。
いずれにしても負の遺産はマイナスのものに違いない。

で、「負の遺産」を持ち出しても、「負の確率」を正当化することはできない、
という点は理解してますか?

941:名無しさん@お腹いっぱい。
07/08/04 17:20:47
じゃあ負の感情についても論破してみて。


942:名無しさん@お腹いっぱい。
07/08/04 17:28:35
>>941
好感度を数値化できるものとする。
平常心での好感度は0で、何かに好感を持った時プラスの好感度になる。
逆に嫌悪感を持てば、マイナスの好感度になる。
マイナスの好感度は「負の感情」と言ってもいい。
だから「負」で正しい。
(だから「負の確率」を肯定する材料にはならない)

943:名無しさん@お腹いっぱい。
07/08/04 18:37:06
>>942
別の高尚なスレッドでやってください。

944:名無しさん@お腹いっぱい。
07/08/04 19:36:54
そうだな。
どうせ表現するならエロでやってくれなきゃわからん。

945:名無しさん@お腹いっぱい。
07/08/04 21:33:50
漢和辞典ひいてみると、虞の項目には「可能性」という文字はないが、恐れには「可能性」と書いてある。
どちらの項目にも「心配する」の意味はある。
広辞苑でも、恐れのほうが虞より先に載っている。
probabilityは見こみで考えたらいいじゃないかな。

946:名無しさん@お腹いっぱい。
07/08/04 21:54:59
>>945
邪魔だと言っている。

意味が分からないならお得意の広辞苑を引いてくれ。

947:名無しさん@お腹いっぱい。
07/08/05 18:41:23
エアコンの室外機が壊れたんですが
お金がないのです
どうしたらいいでしょうか?

948:926
07/08/05 18:59:36
>>930-945
夜勤明けに遊びに行って、帰ってきたらば
この有様w
板違いだけど感受性がおもしろすぎて、嬉しくなるねぇ。

ちなみに(負の)probabilityってのは、
negativeな蓋然性の意味で用いた訳だが・・

あ、あと「マイナスの確率」ってのも
概念的には存在しうるね。
(数学ではなく統計学になるけど
日本語として間違いでは無いよね)
虚数よりは遥に理解しやすい。

949:名無しさん@お腹いっぱい。
07/08/05 19:53:10
>>948
土曜に夜勤か。ご苦労さん。
俺は優雅な休日だった。

950:名無しさん@お腹いっぱい。
07/08/05 23:00:59
>>948
符号付(確率)測度なんて、数学では大して珍しくも無い概念だが…?

951:名無しさん@お腹いっぱい。
07/08/06 07:38:00
ハッシュ汽盆!!

952:名無しさん@お腹いっぱい。
07/08/06 16:33:27
自己顕示欲の固まりが集まるスレはここでつか?

953:名無しさん@お腹いっぱい。
07/08/06 20:18:07
その確立200%

954:名無しさん@お腹いっぱい。
07/08/06 20:23:11
まあ、おれは例外だけどなw

955:名無しさん@お腹いっぱい。
07/08/06 21:15:58
>>953
×確立
○確率

国語苦手かよw

956:名無しさん@お腹いっぱい。
07/08/07 00:56:36
200%も突っ込みどころだろw

957:名無しさん@お腹いっぱい。
07/08/08 03:18:10
すみません。
シェルスクリプトというかコマンド一発で
デバイス(eth0とかeth1とか)を出力することってできますか?
もしよかったらコマンド一発でおしえてください。お願いします。

958:名無しさん@お腹いっぱい。
07/08/08 03:57:05
くだ質へいきなさい。

959:名無しさん@お腹いっぱい。
07/08/08 09:44:57
Linuxの話ならこっちな。
くだらねえ質問はここに書き込め! Part 150
スレリンク(linux板)

960:名無しさん@お腹いっぱい。
07/08/08 09:52:29
すみません。
シェルスクリプトというかコマンド一発で
デバイス(fxp0とかde1とか)を出力することってできますか?
もしよかったらコマンド一発でおしえてください。お願いします。

961:名無しさん@お腹いっぱい。
07/08/08 10:04:34
つまんね。

962:名無しさん@お腹いっぱい。
07/08/08 10:26:35
>>960
まずはいっぱつやらせろ。話はそれからだ。

963:名無しさん@お腹いっぱい。
07/08/08 10:50:43
アッーーーーーー!

964:名無しさん@お腹いっぱい。
07/08/08 16:53:39
ふむ
analyzeってことか

965:名無しさん@お腹いっぱい。
07/08/08 17:40:37
くそつまんねえネタはやめろ

966:名無しさん@お腹いっぱい。
07/08/08 18:08:48
ふむ
お通じ快適ってことか

967:名無しさん@お腹いっぱい。
07/08/08 21:00:51
くそスレ化するかどうかのふんばり時だな

968:名無しさん@お腹いっぱい。
07/08/09 21:06:16
CentOS Linux on Xen
tcsh 6.13.00

たまになんだけど、
cd dir
ls | echo 1
ls | echo 1 ; echo
ってやったあとに
ls
って打つとtcshが固まるのは何故??

バージョンあげれですかそうですか。

969:名無しさん@お腹いっぱい。
07/08/09 21:10:05
>>968
それはXenとかCentOSにフィードバックしてあげれば?

スレ違いとか板違いっぽいけど

970:名無しさん@お腹いっぱい。
07/08/09 21:10:47
>>968
くそスレ化のための燃料ですか?

971:名無しさん@お腹いっぱい。
07/08/09 21:12:46
>969
はえーなw
そうするわ<フィードバック

再現できた。
ls | echo 1^C
ls

972:名無しさん@お腹いっぱい。
07/08/10 10:31:14
aシェルの中でbコマンドをバックグラウンドで実行した場合、
bはまだ実行中だけど、aが終了したときにbにシグナルを送って強制的に終了することってできますか?



973:名無しさん@お腹いっぱい。
07/08/10 11:10:07
>>972
trap "kill $pid;kill -0 $pid && { sleep 1;kill -9 $pid; }; :" EXIT

974:名無しさん@お腹いっぱい。
07/08/10 11:33:26
>>973
trap: Illegal number: EXIT

975:名無しさん@お腹いっぱい。
07/08/10 13:18:19
>>974
trap "kill $pid;kill -0 $pid && { sleep 1;kill -9 $pid; }; :" 0

976:名無しさん@お腹いっぱい。
07/08/10 13:26:23
スクリプトで排他制御をする手っ取り早く確実な方法は何でしょうか?
セマフォ使えればいいんだけど、そんなコマンドないもんね・・・

977:名無しさん@お腹いっぱい。
07/08/10 13:38:33
>>973
ありがとうございます。
ちなみにSIGKILLはどうしようもないですよね・・・

978:名無しさん@お腹いっぱい。
07/08/10 13:41:55
子の側でときどき親が生きてるか確認する、とか。

979:名無しさん@お腹いっぱい。
07/08/10 13:47:20
>>976
FreeBSDには
LOCKF(1) FreeBSD General Commands Manual LOCKF(1)
NAME
lockf -- execute a command while holding a file lock
がある。

980:名無しさん@お腹いっぱい。
07/08/10 23:17:10
>976
lockf は簡単だけど無ければ mkdir を使うんじゃね?

981:名無しさん@お腹いっぱい。
07/08/11 19:03:37
ksh93での質問です。

typeset -A で連想配列を使用したいんですが、ksh93でKey値の一覧を取得する方法ってあるんでしょうか?
(Perlでいうとkeys関数みたいな感じで)


982:名無しさん@お腹いっぱい。
07/08/11 20:05:44
ksh93をつかっているUnixってあるんだな。


983:名無しさん@お腹いっぱい。
07/08/11 21:25:48
>>982

ソースが公開されてんのって、ksh93だから、LinuxやFreeBSDとかでもpdksh以外のkshを使おうとすると、ksh93になるよね。
逆にksh88的に使いたいならpdkshになるんだけど、pdkshはpdkshでksh88とは振る舞いが結構違うのでいたいところがあるね。
商用系のUnixだと、AIXは/bin/ksh93がksh93、/bin/kshはksh88。HP-UXやSolarisはどうなんだろ?一応、ksh93は存在するみたいだけど・・・


984:名無しさん@お腹いっぱい。
07/08/11 22:08:09
HP-UX11iv1とSolaris8/9/10はksh88しかない。


985:名無しさん@お腹いっぱい。
07/08/11 23:31:11
posix-sh をつかうとか


最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch