• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:kshで配列を使いたい)

kshで配列を使いたい

このQ&Aのポイント
  • kshで配列を使いたいです。
  • とあるコマンドの結果として、"a b c"のようなスペース区切りの結果を変数に受け取り、それを配列として読み込みたいです。
  • redhatのkshではうまくいきますが、AIXのkshでは"("でエラーになってしまいます。配列として認識させるにはどうすればいいでしょうか。

質問者が選んだベストアンサー

  • ベストアンサー
  • SaKaKashi
  • ベストアンサー率24% (755/3136)
回答No.1

sh系のsh,ksh等で配列を扱えるのは最近のことです。cshは結構前からOKでしたが。 redhatのkshとAIXのkshのバージョンが違うのでしょう。 AIXですからIBMに聞いてください。

palayo
質問者

お礼

バージョンが違いなんですね。 redhatではksh --version とすると、 93s+ 2008-01-31 と出力されましたが、AIXではエラーになり、バージョンすらわかりません。 kshのバージョンをあげてもらうという対応はできそうにないので、配列を使わずにする方法で何とかします・・・。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (1)

  • notnot
  • ベストアンサー率47% (4859/10276)
回答No.2

配列変数が使えないとすると、 set $VAR して、$1 $2 $3 で参照します。 スクリプトのもとの引数が失われますので、事前に変数に保存しておきます。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • kshの配列格納で教えてください

    表題の件で教えてください。 kshのシェルスクリプトを作成しているのですが、 原因不明のエラーで悩んでいます。 ■やりたいこと あるコマンド<CMD>の実行結果を配列DETAILに格納したい。 ■現状 <CMD>の実行結果を配列DETAILに格納しようとしています。 <CMD>の単体での実行結果は以下の通りです。 CMD実行結果(イメージ) ---------- Title ---------- Detail A ... B ... ---------- この結果を以下のようにして変数に代入しようとするとエラーが発生してしまいます。 set -A DETAIL @(<CMD>) set -A DETAIL `<CMD>` エラーメッセージは以下です。 ksh: set: --: unknown option 恐らく実行結果に「---」という文字列があるためエラーになっているのだと思われます。 これをエラーとせず、配列に---を格納する方法を何かご存じないでしょうか。

  • for文で変数に格納される文字列 (Bシェル)

    シェルの記述に関しての質問です 例えば、 a1 b1 c1 a2 b2 c2 a3 b3 c3 a4 b4 c4 ・ ・ ・ というスペース区切りの配列が書かれたリストファイル(test.lst)を for VAR in `cat test.lst` do set $VAR echo $1 echo $2 echo $3 done という形で処理しようとします。 そうすると、$VAR に入る変数は "a1" や "b1" といった感じで行単位ではなく、スペース区切りで入ってきてしまい、 $2 や $3 はnullになってしまいます。 これを行単位で $VAR という変数に代入する方法はありますか? 区切り文字はスペースのままとします。 宜しくお願いします。

  • JavaScriptで配列に配列を追加できません

    var array = [ ]; var add1 = ["a", "b"]; var add2 = ["c", "d"]; array.push(add1); array.push(add2); ----------------------------------------- 期待しているarrayの中身 [["a", "b"], ["c", "d"]] ----------------------------------------- 実際の実行結果 ["a", "b", "c", "d"] ----------------------------------------- どうすれば良いのでしょうか?

  • 2つの配列を1つにするには?

    var listWords1 = new Array ("a","b","c","d"); var listWords2 = new Array ("e","f"); // という2つの配列を下のような一つの配列にするにはどうすればいいですか? var listWords3 = new Array ("a","b","c","d","e","f"); 試しに var listWords3 = new Array(); listWords3 = listWords1 + listWords2 などとやってみましたがやっぱりダメでした。(^^; またもやド素人の質問でごめんなさい。自分なりに様々なキーワードでgoogleしているのですが、基本的なことすぎるのか、なかなか答えをヒットすることができません。私のような初心者がJavaScriptを基礎の基礎から勉強できるサイトがありましたら、併せてご紹介いただけませんでしょうか?よろしくお願いいたします。m(_ _)m

  • 配列の結合

    変数1 Array ( [A] => あいうえお ) 変数2 Array ( [B] => わおん ) というような二つの変数の配列を Array (   [A] => あいうえお   [B] => わおん ) というように、ひとつの変数内に結合する方法はないでしょうか?

    • ベストアンサー
    • PHP
  • ExcelのVBAで配列の処理 PHPから移行する新米ですが・・・

    PHPからVBAに移行を考えているのですが、VBAの考え方が難しい?わからず難儀しております。 ExcelのVBAで配列の処理を考えているのですが、以下のPHPと同じ動作をするVBAを書きたいのですが、どうすればよいのでしょうか? <?php // 配列を使って、$aを北海道、青森とする。$bは、単なる受け皿です。 // これをエクセルVBAではどのように記述するのでしょうか? $a = array(); $b = array(); array_push($a, "青森"); array_push($a, "青森"); array_push($b, array_pop($a)); array_unshift($a, "北海道"); array_unshift($a, "北海道"); array_push($b, array_shift($a)); var_dump($a); var_dump($b); exit; ?> また、PHPにはvar_dumpという便利なものがありますが、VBAでは VBEのローカルやウォッチ式で見るというのが普通でしょうか? イミディエイトにvar_dumpのように変数の内容を表示させるコマンドはあるのでしょうか?

  • 配列の比較について

    Javascritpで配列全体の比較を行いたいのですが 下の結果が「違います」のように表示させたいのです。 比較の部分はどのように書いたらよいのでしょうか? var a1 = new Array(); var a2 = new Array(); a1['a'] = 1; a1['c'] = 2; a2['a'] = 1; a2['c'] = 3; //=========== 以下の配列の比較方法 if (a1 == a2){ alert('同じです'); } else { alert('違います'); }

  • 配列について

    var myarray=new Array(); myarray[0]="a"; myarray[1]="b"; myarray[2]="c"; myarray[3]="b"; myarray[4]="a"; myarray[5]="d"; のような配列があります。ここから重複しないようにa,b,c,dだけを抜き出すのにはどのようにJavascriptで書いたらよいのでしょうか。 よろしくお願いします。

  • 関数内での繰り返し処理の結果を配列で受け取りたい

    関数内でfor文で繰り返し処理を行い、 結果を配列として返すような関数を書きたいと思っています。 function hoge(){ var a = [1,2,3,4]; for (var i=0; i < a.length; i++){ a1 = "a" + i; var arr = new Array(); arr.push(a1); } return arr; } しかし、以下のように 関数hogeの結果を変数bで受け取ってみると、 配列の最後のデータしか表示されません。 var b = hoge(); alert(b); //a3のみが表示される a0, a1, a2, a3と表示されるようにするには、 どうしたらよいでしょうか。

  • 二つの配列のマッチング

    お世話になっております。 配列$a と $b から配列$cを作りたい。 どうすればいいですか? $a = array('200708', '200709', '200710' ,'200711', '200712', '2000801); $b = array('200710,3', '200712,1'); $c = array('200708,0', '200709,0', '200710,3' ,'200711,0', '200712,1', '2000801,0); または、 $c = array('200708', '200709', '200710,3' ,'200711', '200712,1', '2000801);

    • 締切済み
    • PHP
このQ&Aのポイント
  • VBA勉強しようと思ったが、VBAは打ち切りの流れで意味がないのか疑問に思っている。
  • 最近は.Net coreやpower platformなど、エクセルで新たに実装された機能を使うことが主流になってきた。
  • エクセルを活用するプログラミング言語を学ぶことを考えているが、何を勉強すればいいか迷っている。
回答を見る