和行103 による書き込み:
コマンドラインからコマンド名と引数を入力、return を叩いでコマンド起動するのは UNIX に共通の機能ですが、小生のコマンド CryptOneX.bash(引数10個に拡大)を起動するとセグメンテーションフォールトが起こってコマンド起動ができません。シェルの環境を起動するときに引数の最大個数を指定するなり、コマンド起動を可能にする方策はありませんか。これでは開発が進みません。宜しくご教示のほどお願いいたします。bash を常々利用しています。
コマンド入力において引数に個数制限はありません。
ただコマンドライン全体での最大文字数制限があるだけです。
この文字数制限は"*"や"?"といったワイルドカードを展開した結果に対して適用されます。
ちなみにOS Xでは、この最大文字数はコマンド「sysctl kern.argmax」で確認できます。
実効例:
$ sysctl kern.argmax
kern.argmax: 262144
なお、シェルスクリプト中で数字で直接参照できる引数は$1〜$9の9個のみです。($10は$1+"0"に置き換えられる)
それ以降を参照したい場合は「shift」コマンドを併用するか、$BASH_ARGV[10]のように配列としてアクセスする必要があります。
# 後者はbash独自の拡張機能で他のシェル(Born Shell等)にはありません。