cgi-name
名前
cgi-name : CGI POST メソッドで渡されるデータを name 形式に変換する
書式
使い方とオプション
Usage
cgi-name [<param_file>]
Option
--template <html> -e<c> -s<c> -n<string>
説明
cgi-name は、WEB サーバーの CGI POST メソッドで受け渡されるデータをname 形式に変換します。
例(その1)
WEB サーバーより ‘place=tokyo&country=japan’ という文字列が渡される場合、変数 値 という形式(name 形式)に加工されます。
$ echo 'place=tokyo&country=japan' | cgi-name > result $ cat result place tokyo country japan
例(その2)
改行(%0D%0A %0D %0A)は、“” に変換されます。
$ echo 'place=tokyo%0D%0Aosaka&country=japan' | cgi-name > result $ cat result place tokyo\nosaka country japan
例(その3)
-s オプションで半角空白を指定文字に変換します。
$ echo 'place=tokyo osaka&country=japan' | cgi-name -s_ > result $ cat result place tokyo_osaka country japan
例(その4)
-s オプションで半角空白を削除します。
$ echo 'place=tokyo osaka&country=japan' | cgi-name -s > result $ cat result place tokyoosaka country japan
例(その5)
-e オプションにより、エスケープ()される文字を指定します。この場合、文字 ‘' (%5C) は’\’ となります。
-s オプションと組み合わせて使うと、‘’ は ’_’ に、’' は ’\’ に、’ ’ は ’’ に変換され、完全なエスケープができます。
例(その5-1)
$ echo 'place=tokyo_osaka&country=japan' | cgi-name -e_ > result $ cat result place tokyo\_osaka country japan
例(その5-2)
$ echo 'place=tokyo%5Cosaka&country=j_a_p_a_n' | cgi-name -e_ > result $ cat result place tokyo\\osaka country j\_a\_p\_a\_n
例(その5-3)
$ echo 'place=tokyo osaka&country=j_a_p_a_n' | cgi-name -e_ -s_ > result $ cat result place tokyo_osaka country j\_a\_p\_a\_n
例(その6)
-n オプションにより、返される文字列が空文字列の場合の置換文字列を指定できます。
例(その6-1)
$ echo 'place=&country=japan' | cgi-name > result $ cat result place country japan
例(その6-2)
$ echo 'place=&country=japan' | cgi-name -n somewhere > result $ cat result place somewhere country japan
例(その7)
–template オプションにより指定した HTML テンプレートより、radio とcheckbox の名称を取り出し、その名称でデータが出力されなければ、出力をその名称で補完します。これは、radio や checkbox は選択しないでsubmit すると、値そのものが出力されません。何も選択しなかったというデータを生成するためにこのオプションを使用します。
$ cat html <input type="radio" name="XXXX" value="A" /> <input type="radio" name="XXXX" value="B" /> <input type="radio" name="XXXX" value="C" /> <input type="checkbox" name="YYYY" value="a" /> <input type="checkbox" name="YYYY" value="b" /> <input type="checkbox" name="YYYY" value="c" /> $ echo 'XXXX=abcd' | cgi-name -n_ --template html > result $ cat result XXXX abcd YYYY _ YYYY _ YYYY _
例(その8)
さらに、radio checkbox が html テンプレートの mojihame -l コマンド対象部分にあっても、タグ名_%数字を認識して、選択値が無いときでもタグ名を出力します。
$ cat html <!-- MOJIHAME --> <input type="radio" name="X_%1" value="%2" /> <input type="checkbox" name="Y_%1" value="%2" /> <!-- MOJIHAME --> $ echo 'X_10=abcd' | cgi-name -n_ --template html > result $ cat result X_10 abcd Y _
備考
-d 旧オプション(現 -s オプション)は保証されません。
-i 旧オプション(現 -n オプション)は保証されません。
Version and Edition
Version : Fri Jan 15 10:02:39 JST 2021
Edition : 1
© 2021 Universal Shell Programming Laboratory site