ごめんなさい、どんな情報が必要かわからなかったのと、自分でも 何が問題なのかよく判らないもので・・・ >再マウントできませんか? いろいろと指定を変えて試しています。 ただ、パーティンション情報が間違っている時に rw で書き込んで 大丈夫でしょうか? A1 HDDはIDEが一台のみです。 A2 メッセージをかいつまんで見る感じでは、superblock が読めない と表示されているように思いました。 A3 シングルモードで試してみましたがROでマウントされている状態が 変わりません。 A4 起動中に /proc へのアクセスが出来なくてエラーとなっているようです。 /boot /var /usr /proc のマウントが失敗しているようですが、 / に /usr /var というファイルが存在しますが、/proc というファイルは 存在していません。 関連サイトをあさって情報を探していますが、ファイルシステムは(も) よく判らない状態です・・・ ログは /var へアクセスできないのでお手上げです。 |
"Merkle-Hellman" DESと、Googleで検索をかけたところ、 http://info.isl.ntt.co.jp/~ohta/BOJ-Seminar.pdf を見つけました。21枚目あたりが参考になるかも知れません。 #なんだか、いらない突っ込みしてしまって、余計な苦労を #かけてしまったとしたら、申し訳ないです。 #お忙しいでしょうし、僕の意見も間違っている可能性大い #にあるでしょうから、その内気が向いたらで結構です。 |
>>3601 スナフキン > A3 シングルモードで試してみましたがROでマウントされて > いる状態が変わりません。 シングルユーザモードで起動すれば、Read Only でマウント されているものだと思います。狙いは / のみがマウントされ ている状態にすることで、その後ひとつひとつマウントして みることで、どの部分が壊れているのか原因がわかると考えました。 あとですね、この fstab では LABEL=/home などとファイル システムのラベルを指定しています。わたしの知る限り FreeBSD や Solaris にはこういった機能はないので想像ですが、fstab に ラベルを指定すると、まず全デバイスのラベル名を取得し、 ラベル名が一致したデバイスを mount しようとするのでは ないかと思います。 で、マウントしようとしているデバイスとは異なる場合でも、 ラベル取得時に壊れたファイルシステムが原因でエラーに なるのではないかと想像しました (違うかもしれませんが)。 よって、ラベルを使わず # mount -o rw,remount /dev/hdx /hoge などとデバイス名を指定してマウントしてみてください。 > /usr /var というファイルが存在しますが マウントポイントは最初から必ず存在します。存在するか どうかではなく、その下にファイルがあるかどうか、つまり マウントに成功しているかどうかを教えてください。 > パーティンション情報が間違っている時に rw で書き > 込んで大丈夫でしょうか? 保証はできませんが、大丈夫だと思います。もしファイル システムとして認識できなければマウントできません。また、 /usr を /var に間違えてマウントしたとろで、/var/bin とか /var/sbin とか /var/X11R6 などができてしまう程度 です (当然 umount すれば元通りです)。 ただ、そこでプログラム類が悪さをして /var などの下の ファイルを操作してもらっては困るので、そういう意味でも 「シングルユーザモードで起動」をお勧めします。 |
結果から書くと諦めました。 教えてもらった事と、考えられる事を幾つか試してみましたが、 何らかのエラーのオンパレード・・・ remount も試しましたが、その内 / に居るのに /etc の内容が 見えたり完全におかしくなって来ました。 ちなみに、/ の中には、 /boot 空 /home 空 /usr 壊れたファイルの断片を含んだファイル /var 同上 といった内容でした。 (lsコマンドが正常なうちの結果) まともだった頃の、幾つかのコマンド結果を書いてみます。 #fsck /dev/hda2 Couldn't open /proc/partitions: Input/output error Is /proc mounted? # mount /proc mount: non: can't read superblock # fdisk /dev/hda modprobe: modprobe: Can't locate module char-major-27 modprobe: modprobe: Can't locate module char-major-27 Unable to open /dev/hda しかし、ext3 がクラッシュに強いってのは信じられなくなり ました、4年近く使っている古いext2のシステムは、大きなト ラブルも無く今だ健在なのにたった一度の不正終了で・・・。 運が悪いといえばその通りなんでしょうが・・・(涙) お付き合いありがとうございました。 |
インストーラーで、前のパーティションを残してインストールする選択 肢が有ったので、/home を残して再インストールしたところ、ラッキー な事にデータを残せたようです。 /etc は全滅なので全て再設定を行う必要が有りますが、一番重要なデ ータが残せた事でよしとします。 また、今回のトラブルでファイルシステムのキーワードを沢山見つけま したが、自分はシステムを作るヒトじゃなく使うヒトなので、あまり 深入りするつもりは有りません。 しかし、バックアップの重要性は友人にあれほど言っている自分が今回 の様なトラブルにあった事でよい戒めとなりました。 ジャーナルシステムを過信するとワタシの様な目に遭いますので、皆さ まご注意を(^^;;;; お騒がせいたしまして申し訳有りませんでしたm(_ _)m |
英語と格闘させてしまってるところ、申し訳ないのですが、 暗号技術大全§15.2をご覧ください。 #ごめんなさい。手元にあるのに気が付かなくって。 しかも、Merkle-Hellmanの論文はacmに登録しないと読めない ようなので、僕が一人相撲をとっていたようですね。 #間抜けなことをしでかして、すみません。 |
色々と調べたのですが、どうしても分かりません。 以下の機能のスクリプトを作成中です。 1.ユーザーに入力を促し、ユーザーID、パスワードを入力させる。 2.入力されたパスワードの整合性チェック 文字数、英文字数、数字文字数、ユーザーIDと不一致etc. 3.正しいパスワードであった場合、passwdコマンドを実行し該当ユーザーのパスワードを変更。 問題は、上記の「3」です。 ユーザーが入力したパスワードをそのままpasswdコマンドに渡し、パスワード変更を行いたいのですが、入力されたパスワード文字列をpasswdコマンドに渡すことが出来ません。 通常時のpasswdコマンド実行時の様に旧パスワード/新パスワード/新パスワード(再入力)を促さずに、変数として持っているパスワード文字列をpasswdコマンドに渡すことは出来ないでしょうか? 環境はAIX 5.2でシェルは出来ればkshで実現したいと考えています。 |
>>3607 バンガード AIX は知りませんが、一般的な UNIX では root 権限があれば 元パスワードを聞かれることはないと思います。 http://publib16.boulder.ibm.com/pseries/Ja_JP/cmds/aixcmds4/passwd.htm ただしプログラムで制御するなら、pwdadm を使った方が よいような気がします。 http://publib16.boulder.ibm.com/pseries/Ja_JP/cmds/aixcmds4/pwdadm.htm passwd は人間が操作することを前提としたコマンドなので。 |
>>3607 バンガード passwdコマンドは端末からの入力しか受け付けないため シェルからpasswdコマンドへ直接値を渡すことは出来ません。 expectを使うのが一般的?かなと思います。 (Solaris以外はさっぱりなので参考程度に。) >>3608 68user AIXにはpwdadmというコマンドがあるのですね。 HP-UXのshの話といい、色々と参考になります。 |
>>3609 zsh > passwdコマンドは端末からの入力しか受け付けないため > シェルからpasswdコマンドへ直接値を渡すことは出来ません。 UNIX 一般の話であれば、そうでもありません。Linux では % ( echo oldpasswd ; sleep 3 ; \ echo newpasswd ; sleep 3 ; \ echo newpasswd ) | passwd でできました。Solaris8 だと不可でしたが、本当に端末が ない状況 (cron からとか、CGI からとか) でやるとうまく いったりするかも、とか思ったりします。 なぜ sleep が必要かについてはよくわからないんですが、 そのうち Linux の passwd のソースを読んでみよう。 >>3593 へにか 遅くなりましたが、2key-3DES について。お待たせしたわりに 技術的な話ではないんですが…。 http://x68000.startshop.co.jp/~68user/net/crypt-1.html では、 2key-3DES はやめといた方がいいよ。なぜなら、こんな 攻撃方法があって、現時点では (全数探索を除くと) 最も 現実的な攻撃と思われるからでありますよ。 ということを書きたかったのです。よって、これに対して > 確かに2つの鍵を使う3DESは攻撃方法がある、ということも > 書いていますが、どっちかって言いますと、既存の方法、すなわち、 > §2の、Merkle-Hellman Attackの方法よりも、早い方法がありますよ、 という指摘はちょっと意図が図りかねるなぁと思っておりました。 つまり Merkle-Hellman Attack の選択平文攻撃よりも既知 平文攻撃の方が脅威であるため、 「Merkle-Hellman Attack の方は紹介しなくていいかな。 論文も見つからないし」 と思ったわけです。もしこの認識が誤りであればご教示願います。 |
>>3610 68user > つまり Merkle-Hellman Attack の選択平文攻撃よりも既知 > 平文攻撃の方が脅威であるため、 > 「Merkle-Hellman Attack の方は紹介しなくていいかな。 > 論文も見つからないし」 当時の僕は論文の意図しか見ておらずこの、「論文も見つからない」 ということ、特に誰でも容易にハイパーリンクを辿ることによって 確認できる方法が無い、というところまで、頭が回っていませんでした。 > と思ったわけです。もしこの認識が誤りであればご教示願います。 いえ、少なくとも現在の僕の認識とは同一です。 #僕の勇み足だったと思います。お詫び申し上げます。 |
>>3610 68user バンガードです。 この掲示板を使うのが初めてなので、うまくコメント出来ていなかったら御免なさい。 >UNIX 一般の話であれば、そうでもありません。Linux では > % ( echo oldpasswd ; sleep 3 ; \ > echo newpasswd ; sleep 3 ; \ > echo newpasswd ) | passwd >でできました。Solaris8 だと不可でしたが、本当に端末が >ない状況 (cron からとか、CGI からとか) でやるとうまく >いったりするかも、とか思ったりします。 at コマンドで試してみましたが、残念ながら駄目でした。 引き続きpwdadmについて調査致します。 また、結果を報告させていただきます。 |
>>3608 68user >ただしプログラムで制御するなら、pwdadm を使った方が >よいような気がします。 pwdadmについても確認しましたが、残念ながらpasswdと動作は変わらない様です。 (もう少し、細かい設定が出来はしますが) やっぱり、旧/新パスワードを聞いてきて、それぞれの入力が必要であると言う部分では、全く変わりませんでした。 >>3609 zsh expectについては、昨日も調査を致しました。 しかしながら、expectおよびTclの導入が必要ですので、採用を躊躇しています。 |
>>3613 バンガード 3608 でも書いたように、root 権限で実行したら 旧パスワードは聞かれないと思いますが、どうですか? |
>>3614 68user はい。この件は返事が抜けていましたね。 申し訳ございません。 仰る通り、root権限であれば確かに古いパスワードは聞かれません。 ですが、結局は新パスワードに入力が必要であり、ここでユーザーの介在が必要なことに変わりはありません。 やっぱり、expectを導入するしかないのだろうかと考え始めています。 |
>>3615 バンガード > やっぱり、expectを導入するしかないのだろうかと考え始めています。 もし AIX の passwd が、どうしても端末からしか読んでくれないなら、 expect などに頼るか、PAM を使ったパスワード変更プログラムを 書くことになるかと思います。 |
LinuxASからsolaris9に乗せ替えるのですが、 クーロンはどのように移行できるのでしょうか? まだ実機が来ていなくて何も環境が見えません。 これまでの設定ファイルやスクリプトファイルが そのまま使えるのか、シェルの変更をしないと使えないのか、 どこに配置するのか・・・少しでも事前に解っていれば助かるかな〜って思ってます。 |
>>3617 ビギナー あらーそれは大変ですね。基本的に機能面 (コマンドの数とかオプションの 種類とか) で言うと Linux > Solaris なので (正確には GNU モノ > Solaris)、 Linux から Solaris への移行は結構面倒です。 まずは Sun が提供している 「Linux から Solaris オペレーティング環境への移行」 http://sdc.sun.co.jp/solaris/migration/linux/index.html をどうぞ (ドキュメントを読むにはユーザ登録が必要だと思われます)。 上記ドキュメントには、当然ながら Sun に都合が悪いことはあまり書かれて いませんので (互換性ないですよ、とはあまり書かれていない)、以下わたしの 印象を書きます。 全体的に言えることは、 - Linux (というより GNU) 独自の機能を使っていたら移行に苦労する - 古来からの UNIX の機能しか使っていないならあまり苦労しないかも ということです。GNU モノの一覧はこちらを。 http://www.linux.or.jp/JM/INDEX/gnu.html 特に Solaris の find・date・grep・tar・make・awk・sed コマンドの機能は、 Linux のそれと比べると貧弱な印象があります。 まぁ Solaris でも GNU モノをインストールすることはできるので、 がんばってプログラムを直すか、Solaris に GNU モノを入れるかという 選択肢はありますけどね。 なお、apache や perl など、Linux にも Solaris にも属さないもの (第三者が開発しているもの) は、基本的に同じ動きをします。 > クーロンはどのように移行できるのでしょうか? 基本機能は同じですが、例えば http://www.linux.or.jp/JM/html/cron/man5/crontab.5.html の name=value という書き方は Solaris ではできません。 0-23/2 というのもダメなはず。 上記 man には ATT や BSD の cron では "1-3,7-9" は拒否されるだろう -- "1-3" または "7,8,9" のいずれかだけしか指定できない。 とありますが、Solaris ではどうだったかなぁ。 Solaris の crontab(1) はこちら。 http://www.freebsd.org/cgi/man.cgi?query=crontab&apropos=0&sektion=0&manpath=SunOS+5.9&format=html > 設定ファイル OS の設定ファイル名や内容は、同じものは同じですが、違うものは 違います (としか言いようがない)。 同じもの: /etc/hosts, /etc/resolv.conf, /etc/nsswitch.conf 違うもの: その他たくさん。Linux の /etc/fstab は、Solaris では /etc/vfstab など。 > スクリプトファイル Linux では sh は bash ですが、Solaris は古来からの sh です。例えば Solaris の sh では export A=B はダメで、 A=B export A としなくてはいけません。このような bash 依存な書き方をしていなければ 少しの修正でいけるかもしれませんが、bash の便利な機能を活用しまくって いるなら苦労するでしょう。 |
>>3618 68user 参考にさせていただきます。 実機の搬入が来週なので、結果報告はその時にします。 |
>>3616 68user 現在expectで対応する方向で準備中です。 ありがとうございました。 |
度々申し訳ございません。 今度はkshで教えてください。 ======= test_file ======== aix4-r1 aix4-r2 aix4-r3 aix4-r4 aix3-r1 aix3-r2 aix3-r3 aix3-r4 aix2-r1 aix2-r2 aix2-r3 aix2-r4 ======= test.ksh ======== #!/usr/bin/ksh file="test_file" nawk '{ if ( (substr($0,1,4) == "aix4") )\ {\ printf "TRUE:%s\n",$0; \ }\ else {\ printf "FALSE:%s\n",$0; \ }\ }' $file 上記の様に文字列の先頭数文字のみを見て一致するかの判定を行いたいのですが、ksh単体での実現方法が分からず苦労しています。 やはり、上に示したようにawkを使用して、その中でsubstr関数を使用するしかないでしょうか? 本当に基本的なことで申し訳ございませんが、よろしくお願い致します。 |
>>3621 バンガード こんな感じですかね。 while read line; do prefix=${line%-r[0-9]} if [ "$prefix" = "aix4" ]; then echo "TRUE:$line" else echo "FALSE:$line" fi done < test_file |
>>3622 68user > prefix=${line%-r[0-9]} > if [ "$prefix" = "aix4" ]; then これだと、私が例で示させていただいたパターンにしか対応できませんよね。(そういう意味では私の示した例が悪かったですね) これを「aix4-r23,aix-r4x3」なども「一致」と見るような方法は無いでしょうか? たとえば、以下のようなif文は無理でしょうか? if [ $line = "aix4"* ]; then |
>>3623 バンガード > 「aix4-r23,aix-r4x3」なども「一致」と見るような方法は無いでしょうか? > if [ $line = "aix4"* ]; then aix4* では aix-r4x3 はマッチしないように見えますが、 またしても不適切な例ではありませんか? > if [ $line = "aix4"* ]; then if ではできませんが、case ならできます。 while read line; do case $line in aix4*) echo aix4 ;; aix5*) echo aix5 ;; *) echo others ;; esac done < test_file |
>>3624 68user >aix4* では aix-r4x3 はマッチしないように見えますが、 >またしても不適切な例ではありませんか? おっしゃるとおりです。 重ね重ね申し訳ございません。 >if ではできませんが、case ならできます。 なるほど、caseでなら「aix4*」が可能ですか。 助かりました。 |
初めまして、裏方と申します。 WinSockを用いたウィンドウズネットワークプログラムで、インター ネットを介して、私のマシン名からIPアドレスを取得する方法に ついて悩んでいます。言語はC言語を扱っております。 ローカルネットワークではマシン名からIPアドレスを取得するには Gethostbyname関数で取得できるのですが、インターネットを介した 遠方のマシンのから私のマシンのIPアドレスを取得する事が出来ま せん。(私のはサーバマシンでは無いので当然なのですが・・・) 私のマシンは大学で扱っているもので、ネットワークに繋ぐたびに 動的なIPアドレスが割り当てられるのですがサーバプログラム等を 私のマシン上で動かすときにいちいち相手に今のIPアドレスを教え なければならないので非常に不便です。 どうにかして、私のマシン名からIPアドレスを取得する方法が あるのでしょうか?どなたかアドバイスをお願いします。 |
>>3626 裏方 - 逆引きできないから困っているの? (もしそうなら「マシン名」というのは何?) - IP アドレスがころころ変わるから困っているの? (もしそうなら「マシン名」は関係ないのでは?) - そもそもマシン名って何を指しているの? FQDN? - DHCP で振られる IP アドレスには FQDN が設定してあるが、 外部向け DNS サーバには登録してなくて、内部からしか逆引き できない、という状況? などなど疑問はつきませんが、http://www.dyndns.org/ などの DynamicDNS と呼ばれるサービスを使うのが一つの解でしょう。 ただしこれは、大学とは全く関係ない FQDN を、大学から付与されて いる IP アドレスに結びつけるということです。管理者が寛容である ことを期待するか、リスクを負ってこっそりやるのがよいでしょう。 |
始めまして、UNIX使い始めです。 この度、awkコマンドを使用してファイルを分別して削除するシェルを作成しているのです。 そこでお聞きしたい事がるのです。 awkコマンドのifなどの中で変数は使えないのでしょうか? 現在、全ファイルに作成日付が付加されており、 指定日より前の物を削除したいいのです。 シェルの前半で指定日付を変数へ代入し、 lsとawkをパイプで繋いで削除しようとしています。 awk内のifなどによる条件判断で変数を宣言すると$0のメンバー名全体が表示されており、判別できないのです。 (ifを削除しprintで変数を表示させて確認) 出来ないのであれば何か別の方法を考えなくてはいけないのですが、 何方かお答えください。 |
>>3628 Tangerine 具体的にどのようなスクリプトなのか見せて頂けませんか? (そもそもawkを使う必要があるのでしょうか?) |
返信遅れてすいません。 えっと、確かに自分もawkを使う必要があるのか微妙ですが、 #! /usr/bin/sh make_date=`date +"%Y%m%d"` make_date=`echo $make_date"-1" | bc` echo $make_date ls *.*.* | awk -F. '{if($2<make_date) print $0}' 問題としているのはこのあたりです。 変数make_dateに昨日の日付けが入り、 それ以前のものを表示させたいのです。 正直なところを言えば、awkを使う必要性はまったくといってないです。 ただ、自分が色々調べた結果awkを使ってやれば出来るのか? と、考えて使ってみただけですので。 awkじゃなくて別の方法で行えるのであれば、 御教授いただけると嬉しいです。 |
>>3630 Tangerine 単純に昨日以前のファイルを表示するのであればこんな感じで。 (ファイルが無い時を考えるとls使った方がいいのかな?) ------ #!/bin/sh make_date=`date '+%Y%m%d'` for f in `echo *.[0-9]*.*` ; do d=`echo $f | cut -d. -f2` [ $d -lt $make_date ] && echo $f done ------ awkを使うのであればこんな感じかな。 実装されているawkによって変数の設定の仕方が違うので注意してください。 ------ #!/bin/sh make_date=`date '+%Y%m%d'` ls *.[0-9]*.* | awk -F. '{if($2 < d) print}' d=$make_date |
>>3631 zsh おおっ!!有難う御座います(T▽T) なるほど、forですね。なんとも勉強不足でした(^^; やはりawkでは変数をそのまま引き継げないのですね。 awk内で更に変数に入れ込まなければいけないとは(^^; 有難う御座います。 教えていただいた方法で作成していきます。 本当に助かりました(w |
>>3632 Tangerine > やはりawkでは変数をそのまま引き継げないのですね。 そういうわけではありません。 > ls *.*.* | awk -F. '{if($2<make_date) print $0}' awk はどういう引数が欲しいか、というと awk -F. '{if($2<$make_date) print $0}' や awk -F. '{if($2<make_date) print $0}' ではなくて、 awk -F. '{if($2<20040315) print $0}' となってほしいわけです。 で、こうなるように書くにはどうすればよいか。 [方法1] まず awk -F. '{...}' と '' で囲ってはいけません。'' で囲った時点で中に入っている 変数が展開されなくなります。というわけで、 awk -F. "{...}" と "" で囲みます。これで中の変数が展開されます。しかし awk -F. "{if($2<$make_date) print $0}" と書いてしまうと、$2 や $0 まで展開されてしまいます。$2 や $0 は awk にそのまま渡したいので、 awk -F. "{if(\$2<$make_date) print \$0}" と \ でエスケープします。 [方法2] 方法1 のエスケープがうっとうしいなら、まず awk -F. '{...}' と '' で全体を囲みます。そして狙いのところだけ '' の外に出します。例えば awk -F. '{if($2<'$make_date') print $0}' こんな感じ。つまり 'x'$y'z' という形にするわけですが、これは 'x' + $y + 'z' というふうに結合されるので うまく動きます。 いずれの場合であっても、 % sh -x hoge.sh と -x オプションを付け、変数が狙い通り展開されているかどうか チェックする癖をつけましょう。 |
なるほど〜、ややこしい事になっていたのですね〜 おかげさまで希望の日付以前のファイルを削除することが出来ました、 有難う御座います。 追伸 >% sh -x hoge.sh 使うようにしてみます(^^; |
>>3633 68user その方法があることをすっかり忘れてました。 (というか使った試しが無い・・・反省) いつもながら勉強になります。 |
初めまして、Perl初心者です。 Socketを使ってUDPのプロキシ機能を作りたいのですが、 Send関数のあて先の指定で、inet_atonを使わずに指定 する方法がわかりません。というのも、あて先IPアドレスは 分かっているのですが、/etc/resolv.confには記述されて いないからなのですが。 やっぱりinet_aton関数を使ってホスト名からIPアドレスを 取得しないとダメなのでしょうか? どなたか教えてください。 環境は、Solaris8 、perl5 です。 今はこんな感じなのですが、、、 socket(SOCKET, PF_INET, SOCK_DGRAM, 0); $ip = '192.168.253.155'; $sock_addr = pack_sockaddr_in(2426, $ip); send(SOCKET, "test", 0, $sock_addr); |
>>3636 tomato inet_aton には IP アドレスも渡せます。なので、 socket(SOCKET, PF_INET, SOCK_DGRAM, 0); $ip = '192.168.253.155'; $iaddr = inet_aton($ip); $sock_addr = pack_sockaddr_in(2426, $iaddr); send(SOCKET, "test", 0, $sock_addr); でよいです。 http://x68000.startshop.co.jp/~68user/net/func.html#inet_aton ではホスト名しか渡せないような書き方をしていますので、ちょっと 不適切でした。 そもそも、C 言語での inet_aton の機能は、 aaa.bbb.ccc.ddd という文字列を解析し、in_addr 構造体に格納する というもので、名前解決は行いません。一方、perl の Socket パッケージの inet_aton は、ホスト名も受け付けるように機能拡張されているわけです。 |
また初歩的なことで申し訳ありません。 以下のプログラムで、13行目以降で配列(CMD)の内容を表示させて いるのですが、全てNULLになってしまいます。 +1 #!/usr/bin/ksh +2 INDEX=0 +3 TEST=`ls -l | +4 while read LINE +5 do +6 CMD[$INDEX]=$LINE +7 echo $INDEX":"${CMD[$INDEX]} +8 let "INDEX = INDEX + 1" +9 done` +10 echo "$TEST" +11 +12 INDEX=0 +13 while [ $INDEX -lt 5 ] +14 do +15 echo $INDEX":"${CMD[$INDEX]} +16 let "INDEX = INDEX + 1" +17 done このプログラムの3行目から10行目を以下の様に修正すれば、13行目 以降でも配列の中身が正常に表示されます。 +3 ls -l | +4 while read LINE +5 do +6 CMD[$INDEX]=$LINE +7 echo $INDEX":"${CMD[$INDEX]} +8 let "INDEX = INDEX + 1" +9 done +10 最初のプログラムの様に、最初のループの結果を変数にセットする 場合で、ループから出た以降も配列の中身を保つ方法は無いでしょう か? |
>>3638 バンガード バッククォーテーションでくくると別プロセスになるから 変数を保持することはできないと思いますが・・・ |
>>3638 バンガード > このプログラムの3行目から10行目を以下の様に修正すれば この修正ではなぜダメなのか理由を書いていただかないと、代案が出せないです。 |