|
>>4339 TKG ~A/ 710 ~A/D/ 750 ~A/X/ (D 以外) 700 でしょうか。 |
|
Solarisでシェルスクリプトを起動する場合。 $ csh script.cshと入力しなければなりませんが、 最初のcsh を省略して$ script.cshで起動する方法を教えて下さい。 宜しくお願いします。 |
|
> 68user様 http://x68000.q-e-d.net/~68user/unix/genre.html#genre22 にheadが二つ表示されています。 >>4341 誠 UNIXの部屋を読めば判ると思いますが・・・ 1.スクリプトの一行目にシェルのパスを指定する。 2.環境変数PATHを設定する。 3.スクリプトに実行権をつける。 といったところでしょうか。 http://x68000.q-e-d.net/~68user/unix/pickup?Command+not+found |
|
>> 誠さん 4342 で言われている PATH の設定は csh が置かれている場所にパスを通すって 意味であって、PATH に "."(カレントディレクトリ) を加えるって話では無い筈です。 従って、 単に script.csh ではなく ./script.csh って起動方法になると思います。 PATH に "." を加える事の問題とか、csh スクリプトを覚えるよりも sh 系の スクリプトを覚えた方が良いって話は検索すれば出てきますので読んでみましょう。 |
|
>>4343 hoge スクリプト専用のの格納ディレクトリがあるのかと思い PATHの設定が必要と書きました。 ・・・・ちょっと意地悪したくなったのも事実ですが。 |
|
>>4337 68user 返事が遅くなって申し訳ありません。 アドバイスありがとうございます。 ログに出力し、ログをチェックする方法でやってみます。 |
|
sedを使用して大文字から小文字に変換したいのですが、 なかなか上手くいきません。 例えば、「YAMADA」を「Yamada」と先頭の1文字目は大文字で、 2文字目以降を小文字に変換したいのですが、以下の様にsed を使ってやったのですが上手く行きません。 sedでは、無理なのでしょうか。 環境は、Solaris8、Bシェルです。 ---------------------- NM=Ya1AMADA echo $NM | sed 's/[A-Z].*/[a-z]/g' NM=YAMADA echo $NM | sed 's/\(.\)[A-Z]*/\1/g' |
|
>>4346 hagu 多分、sedだけでは無理だと思います。 sedを使わなくても、awkだけでも可能です。 echo $NM | nawk '{for(j=i=1;i<=length($0); i++) if(i==1) {NM[i]=substr($0,i,1)} else {NM[i]=tolower(substr($0,i,1))}} END{for(count in NM) printf("%c",NM[count]); printf("\n")}' |
|
>>4347 お 試してみましたが、出方が変です。 amadaY となります。 |
|
始めまして、ネットワークプログラミング周辺読ませて頂きました。 簡潔なソースで読みやすかったです。 お礼に掲示板カキコ、それにしてもみなさん勉強熱心ですね(笑 ---------------------------------------- echo $NM | \ sed -e h -e 's/^\(.\)\(.*\)/\1/g' \ -e 'y/[abcdefghijklmnopqrstuvwxyz]/[ABCDEFGHIJKLMNOPQRSTUVWXYZ]/' \ -e x \ -e 's/^.\(.\)/\1/g' \ -e 'y/[ABCDEFGHIJKLMNOPQRSTUVWXYZ]/[abcdefghijklmnopqrstuvwxyz]/' \ -e H \ -e g \ -e 's/\n//' ---------------------------------------- なんとなしsedの勉強してしまった、本買う気にはならないけどね。 http://web.archive.org/web/19961202111128/http://yase.yajima.kuis.kyoto-u.ac.jp/staffs/sengoku/sedlec/ |
|
>>4346 hagu もしperlならこんな感じなんでしょうか? echo $NM | perl -ple 'y/A-Z/a-z/;substr($_,0,1)=~y/a-z/A-Z/;' |
|
>>4347 お >>4348 hagu 連想配列の場合、表示の順序は、ハッシュ法に従うのでランダムとなります。 すみません。 echo $NM | nawk '{for(i=1;i<=length($0); i++) if(i==1) {NM[i]=substr($0,i,1)} else {NM[i]=tolower(substr($0,i,1))}} END{for(j=1; j<i; j++) printf("%c",NM[j]); printf("\n")}' |
|
>>4349 マーブル 凄い。 sedだけでですね。 でも、凄く、複雑すぎます。 >>4351 お 今度は、期待したいた結果が得られました。 awkを使っているのも複雑ですね。 |
|
>>4352 hagu これじゃだめ? $ echo $NM | nawk '{ a=toupper(substr($0,1,1)); b=tolower(substr($0,2)); printf "%s%s\n",a,b; }' |
|
>>4353 zsh そうですよね。 substr()で2文字目以降すべてを変換してしまえばいんですよね。 何、ループで1文字ずつ変換し、表示しているんだろう。 |
|
あまり知られていないscanfの用法。 既出でしたか残念。>>4041>>4042 http://www.linux.or.jp/JM/html/LDP_man-pages/man3/scanf.3.html 以下同意 ------------------------------------- sscanf(host_path,"%[^/]%s",host,path); ------------------------------------- p = strchr(host_path, '/'); if ( p != NULL ){ strcpy(path, p); *p = '\0'; strcpy(host, host_path); } else { strcpy(host, host_path); } ------------------------------------- |
|
fdopen()で作成されたストリームが閉じられたときにファイル記述子も 閉じられる。 http://www.linux.or.jp/JM/html/LDP_man-pages/man3/fdopen.3.html よって以下のページのL:125は不要です。 http://x68000.q-e-d.net/~68user/net/c-http-2.html |
|
>>4356 マーブル ありがとうございます。とりあえず POSIX を確認させてください (明日以降)。 http://www.opengroup.org/onlinepubs/009695399/functions/fdopen.html |
|
>>4357 68user 明日以降と言いつつ今確認してみましたが、POSIX にはそういう記述は ないように見えます。また、Solaris9 のマニュアルにも書いてないように 見えます。 http://www.freebsd.org/cgi/man.cgi?query=fdopen&sektion=3C&manpath=SunOS+5.9 しかし BSD ならば、4.4BSD-Lite2 にはそのような記述があります。 http://www.freebsd.org/cgi/man.cgi?query=fdopen&manpath=4.4BSD+Lite2&format=html Solaris や HP-UX が手元にある方にお願いなのですが、fdclose して fclose した ときにソケットディスクリプタがクローズされるかどうか truss コマンドなどで 確認していただけないでしょうか (わたしのまわりは FreeBSD と Linux しかないので)。 いずれにせよ何かしらの補足は追記したいと考えています。 |
|
>>4358 68user > fdclose して fclose したときに 「fdopen して fclose したときに」の誤りでした。 ちなみに「UNIX ネットワークプログラミング第2版」からは、この件についての 記述を読み取ることはできませんでした。 |