- - PR -
cシェル上で(さきほどcとしか入れませんでした。)
«前のページへ
1|2|3
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2005-11-29 04:39
file(*.dmp)
|
|
投稿日時: 2005-11-29 08:54
コブラさん、ありがとうございます。
一緒に聞けばよかったのですが、cシェルにて実行した下記のset文はどういう意味 なのでしょうか?これを実行するとflistには何が入るのでしょうか? bシェルに直すとどのようになるでしょうか? set flist = ($flist $file) 皆様、ご教授よろしくお願いします。 |
|
投稿日時: 2005-11-29 09:50
やすけさんはこの会議室で質問する前に、適切な書籍を読むなりネットで検索するなりされた方がよろしいと思います。
はっきり申し上げて、Bourne-shell での記法をまったく知らないのにいちいち質問されているようにしか見えません。 |
|
投稿日時: 2005-11-29 10:49
Gioさん、ご指摘ありがとうございます。
色々ネットで調べては見たのですが、これだ!っていうのが見つからなくて。 申し訳ありません。ねっとりと、調べている時間もままならない状況だったので ヘルプしました。Bourne-shell での記法をまったく知らないわけではないのですが 逆に参考になるような文献、URL等ありましたら 教えていただけますでしょうか? |
|
投稿日時: 2005-11-29 21:03
確かに「Bourne シェル 入門」あたりで検索しても、有益と思われるサイトが出てきません。
私自身は man sh でほとんど済ませてきたのですが(汗) あちこちのサイトで有益な書籍の候補としてブルース・ブリン「入門UNIXシェルプログラミング」(ソフトバンクパブリッシング刊)が挙がっていますが、私自身はこの本を読んだことがないため、推奨は控えます。 近々読んでみようと思いますが、やすけさんが内容を見て理解でき、有益と感じられたなら手元に置くのもよろしいと思います。 英語でよろしければ、以下のサイトがかなり良くまとめられていると感じました。 よろしければご覧ください。 UNIX/Linux Bourne/Bash Shell Scripting Tutorial http://steve-parker.org/sh/test.shtml 私自身もしばらく Bourne-shell スクリプトを書いていなかったので(^.^ ![]() 一応 Windows XP Professional 上の cygwin bash で動作は確認しましたが、pure Bourne-shell 環境がなく確認できません。この点をお断りしておきます。 (元の C-shell スクリプトに不要と思われる行もありましたが、ここでは逐語的に書き、コメントを入れてあります) dir=/export/home/nkdse cd $dir # これは不要。dir に相対パスを指定すると、ほとんどの場合エラーになる list=`ls -1 $dir` flist="" i=0 for file in $list do if [ -f "$dir/$file" ] then flist="$flist $file" i=`expr $i + 1` echo "処理番号 $i: $file" fi done echo "***************************************************" echo -n "処理番号を選択してください:" read ShoriNo 字面は非常に似ていますが、
あたりが C-shell と異なります。 あと、echo がシェルのビルトインコマンドではなく OS コマンド(/usr/bin/echo 等)の場合、-n オプションはシェルに依存せず同じ働きをするので心配しなくても大丈夫です。 (echo をシェルビルトインコマンドで持つシェルがあったかどうかは、記憶が定かではありません) [ メッセージ編集済み 編集者: Gio 編集日時 2005-11-29 21:10 ] |
|
投稿日時: 2005-11-29 21:28
一つ重要なことを思い出したので補足します。
pure Bourne-shell には配列変数がありません。 直前の投稿ではファイル名をスペースで区切った形式で flist 変数に入れていますが、この中から ShoriNo 番目のものを直接取り出す方法がないということです。 ということで改定版。 少し高度なことをしています。(シェルビルトインコマンド eval を利用) dir=/export/home/nkdse list=`ls -1 $dir` i=0 for file in $list do if [ -f "$dir/$file" ] then i=`expr $i + 1` eval filenameByIndex$i=$file echo "処理番号 $i: $file" fi done echo "***************************************************" echo -n "処理番号を選択してください:" read ShoriNo eval selectedFile=\$fileNameByIndex$ShoriNo echo $selectedFile |
|
投稿日時: 2005-11-30 09:10
Gioさん、早速のお返事ありがとうございます。早速本屋に行って探してみます。
それと、bシェル早速試してみました。とてもわかりやすい説明でとても参考に なりました。bシェルで出来ましたので、ご報告いたします。 コブラさんからもアドバイスを頂き、なんとかこうにかできました。 皆様、ありがとうございました。この場をお借りしてお礼申し上げます。 |
«前のページへ
1|2|3