shスクリプトでcgi (79レス)
1-

2
(1): 03/03/20 02:17 ID:??? AAS
Cでcgiを書いてますが何か?
↓C++で書いてるヤシ
3: 03/03/20 02:58 ID:??? AAS
低パワーマシンで perl や python では重すぎる
CGI でシェルスクリプト使ったりします。
4: 03/03/20 07:31 ID:??? AAS
外部リンク[sh]:lib.city.shinagawa.tokyo.jp

これってやっぱりシェルスクリプトなのかなぁ。
5: 03/03/20 08:00 ID:0FfyPGzB(1) AAS
#!/bin/sh
echo "Coutent-type:text/html;charse:Shift_JIS\r\n\r\n逝ってよし"
6: 03/03/20 13:39 ID:??? AAS
かけないこともないが
perlで重くてシェルスクリプトで軽いってことは
そんなにないだろう?
もしそうなのならマシンを見直す必要があると思うが・・・

WinのバッチファイルでCGI組んでるやつの方が
まだネタになるぞ
7
(1): 03/03/20 23:27 ID:??? AAS
> WinのバッチファイルでCGI
すごい穴になりそうだな
8: 03/03/21 00:42 ID:dpOkqofd(1) AAS
shスリプトでここまでできたという事例が聞ければうれしっす。
/bin/sh
9: 03/03/21 00:46 ID:??? AAS
>>7
つぅか標準入力を扱えない時点でCGI失格だと思われ。
10: 03/03/21 07:21 ID:??? AAS
C++ with MFC で家庭内LAN用のCGI作ろうとしてますが、何か?

# CStringマンセー
11
(1): 03/03/21 09:19 ID:??? AAS
機会があればschemeで作ろうとしてるんですけど割と神ですか?
12: 03/03/21 09:33 ID:??? AAS
どこかで404とかのドキュメントを
ブラウザの環境変数であれこれする
shスクリプト見たような気がする
13: 03/03/21 17:27 ID:??? AAS
shbbs.cgi (1/2)
#! /bin/sh

if [ $REQUEST_METHOD = "POST" ]
then
cp log.txt dummy.txt
printf "`cat -| awk -f filt.awk`" | sed -f filt.sed >> dummy.txt
printf "<br>\n" >> dummy.txt
tail -30 dummy.txt > log.txt
fi

cat <<END_OF_HEADER
Content-type: text/html; charset=EUC-JP

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html lang="ja">
<head>
<meta http-equiv="Content-Script-Type" content="text/javascript">
<meta http-equiv="content-type" content="text/html; charset=EUC-JP">
<title>/bin/sh BBS</title>
</head>

<body onLoad="LoadCookie()">
<script type="text/javascript"><!--
function SaveCookie(val){
document.cookie = "handle_name="+escape(val)+"; path=/;";
}
14: 03/03/21 17:29 ID:??? AAS
sshbbs.cgi (2/3)

function LoadCookie(){
var cookies = document.cookie.split(";"), value = "";
for(var i = 0; i < cookies.length; i++){
var piece = cookies[i].split("=");
if (piece[0].replace(" ","") == "handle_name"){
if (piece[1] != null){
document.forms[0].name.value =
unescape(piece[1]);
}
break;
}
}
}
--></script>

<h1 align="center">/bin/sh BBS</h1>
<hr>
<dl>
<dd>
END_OF_HEADER

cat log.txt
15: 03/03/21 17:29 ID:??? AAS
snbbs.cgi (3/3)

cat <<END_OF_FOOTER
</dd>
</dl>
<hr>
<a name="form">post form</a>
<form method="POST" action="shbbs.cgi#form" onSubmit="SaveCookie(this.name.value)">
name: <input name="name" size="19"> message: <input name="message" size="80"> <input type="submit" value="Write">
</form>
<div align="right"><a href="shbbs.cgi#form">Reload</a></div>
<hr>
<div align="right">/bin/sh BBS ver 1.0</div>
</body>
</html>
END_OF_FOOTER
16: 03/03/21 17:30 ID:??? AAS
filt.awk(1/3)

BEGIN {
FS="="
RS="&"
}

{
key = "0123456789ABCDEFabcdef"
str = ""
i = 1
while(i <= length($2)){
d = substr($2, i, 1)
i++
if (d == "%"){
oct = 0
for(j = 0; j < 2; j++){
oct *= 16
d = substr($2, i, 1)
i++
for(k = 1; k < length(key); k++){
if (d == substr(key, k, 1)){
if (k > 16) k -= 6
oct += k-1
break
}
}
}
17: 03/03/21 17:31 ID:??? AAS
filt.awk (2/3)

# if (oct > 127) oct = 32
if (oct < 32) oct = 32
col = 64
dec = ""
while(col > 0){
d = int(oct/col)
dec = (dec d)
oct -= d*col
col = int(col/8)
}
str = (str "\\" dec)
} else {
if (d == "+") d = " "
str = (str d)
}
}
$2 = str
}
18: 03/03/21 17:32 ID:??? AAS
filt.awk (3/3)

$1 == "name" {
name = $2
}

$1 == "message" {
message = $2
}

END {
RS = "\n"
"date +'%y/%m/%d %T'" | getline time
print ("[" time ": " name "] " message)
}
19
(1): 03/03/21 17:32 ID:??? AAS
filt.sed (1/1)

s/&/\&/g
s/</\</g
s/>/\>/g
s/"/\"/g
20: 03/03/21 17:34 ID:??? AAS
>>13-19
で、一行BBSできます。
log.txt,dummy.txtを作っといてね。
# 動作無保証。
21: 03/03/21 17:39 ID:??? AAS
>>19
s/&/\&amp;/g
s/</\&lt;/g
s/>/\&gt;/g
s/"/\&quot;/g

うう。
22
(1): 03/03/21 18:02 ID:??? AAS
うえーん!ソースコピペ荒らし反対!!!
23
(1): 03/03/21 18:25 ID:??? AAS
>>22
すまんかった。
24
(1): 03/03/22 12:41 ID:Ve1PHIbC(1) AAS
>>23さん
どんまい。shだけでも結構なことができるんですね。

おかわり!
25: 03/03/22 19:29 ID:??? AAS
>>24
私の技量ではあれが限界。
awkなんて初めて使ったよ。
26
(2): 03/03/23 14:34 ID:emAJ6ArI(1/3) AAS
shスクリプトで投稿文のデコードはどう行なうの?

外部リンク[html]:www.mahoroba.ne.jp

ここ見ながら勉強を初めたのだが、うちのサーバーには
cgiparseというソフトが見あたらない。そのHPにはNCSA
のサーバなら附属してくるとなっているが、 当方Apache
なので。。。
どなたか御教示を頂ければ。
27
(1): 03/03/23 15:21 ID:??? AAS
>>26
作ろか?標準入力から入ってきたデータURLデコードするプログラム。

って言うかawkでも使えば?じゃあPerl使った方が早いなぁ・・・。

って言うかPerlの関数呼び出しとshのプロセス起動させまくり、どっちが軽いの?
28
(1): 03/03/23 15:33 ID:emAJ6ArI(2/3) AAS
>>27
おねげーしますだ。m(_ _)m
できればawkのものが勉強のためにはうれしかったりします。
29
(1): 03/03/23 17:48 ID:??? AAS
>>28
27じゃないけど、単に標準入力から読んでデコードして標準出力に書き出すだけならこれでいいかな。
きちんとテストしていないけど。一度全てバッファに取り込んだ方がいいかな?

#include <stdio.h>
#include <stdlib.h>

int main()
{
char s[3]={0};
int c;

while((c=getchar())!=EOF){
switch(c){
case '+':
putchar(' ');
break;
case '%':
s[0]=((c=getchar())==EOF)?'\0':c;
s[1]=((c=getchar())==EOF)?'\0':c;
putchar(strtol(s,NULL,16));
break;
default:
putchar(c);
break;
}
}

return 0;
}
30: 03/03/23 21:53 ID:emAJ6ArI(3/3) AAS
>>29
ありがとうございます。
これはccでコンパイルした後、どうshスクリプトに組み込めばよいのですか。
初学者なものでお手数をとらせてもうしわけございません。
31: 名無しさん@カラアゲうまうま 03/03/23 22:26 ID:??? AAS
sh スクリプトで URL デコード。
URL エンコードされてない無関係な文字列が入ってると破綻するけど。

% cat urldec.sh
#!/bin/sh
( echo ibase=16; echo obase=8; echo "$@" | tr a-z% A-Z\\n ) |\
bc |\
while read a; do
echo -e \\0$a
done |\
tr -d \\n

% sh urldec.sh %A4%DB%A4%B2
32
(1): 03/03/23 23:12 ID:826klXke(1) AAS
>>11
おいらLISP(clisp)でつくってるよ〜

#! /usr/bin/perl
open (MYLISP,">mylisp.lisp");
print MYLISP "S式";
close(MYLISP);

system("clisp mylisp.lisp");

こんなんだけど・・・
33: 03/03/23 23:15 ID:e2yFDnGv(1) AAS
★男はココを見るべし★女と金とサンプルムービー★
↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓
外部リンク[html]:www.pink-angel.jp
34: 03/03/23 23:19 ID:??? AAS
>>32
あんた、そっち公開しても仕方ないっしょ。
35
(2): 名無しさん@カラアゲうまうま 03/03/23 23:26 ID:??? AAS
そういえば、cgi じゃなくて httpd そのものが
sh で書かれてるというのがあるんだった。
外部リンク:www.ascii.co.jp
36: 03/03/23 23:30 ID:??? AAS
>>35
ああ、スーパサーバ使えば後は標準入出力のプログラムになるからなぁ。
37: 03/03/24 00:11 ID:??? AAS
>>35
<H1>ただいまメンテ中</H1>
って吐くだけの同じ奴を使ってた事がある。
apache止めてる間だけとか。
38: 03/03/25 15:20 ID:??? AAS
mod_brainfuck で…。(誰か使ってる人いない?)
39
(1): 03/03/29 00:47 ID:??? AAS
なつかしーな。1994年ごろは、カウンタっていったら、shとperlが半々だったきがする
40: 03/04/06 00:59 ID:/7G2cvSN(1) AAS
>>39
shスクリプトが生き残れなかったのはなんでだろう?
41
(2): 03/04/06 02:18 ID:??? AAS
外部コマンドを大量に起動するためにオーバヘッドが非常に大きく遅い。
shから呼ばれる外部コマンドのパスや引数や実装がOSによって大きく異なる。
あまつさえ/bin/sh自身がOSによって互換性がない。
42: 03/04/08 01:54 ID:??? AAS
>>41
うむ。その前提で限界に挑戦するのがおもしろいのではないのか?
43: 03/04/11 06:31 ID:??? AAS
毎回自分自身がどのような環境に置かれた sh なのか調査した上で動き出すようにすればよい。
44: 03/04/14 17:51 ID:??? AAS
configureかよ!
45: 山崎渉 [(^^)] 03/04/17 12:09 ID:??? AAS
(^^)
46: 山崎渉 [(^^)sage] 03/04/20 06:23 ID:??? AAS
   ∧_∧
  (  ^^ )< ぬるぽ(^^)
47: 03/05/01 00:19 ID:nSLOiiM0(1) AAS
echo "AGE"
48: bloom 03/05/01 00:29 ID:YcBKOzoM(1) AAS
外部リンク:homepage.mac.com
49: 03/05/11 14:24 ID:??? AAS
multipart/form-data ならデコードしなくて済むのでわ,
と言ってみるテスト
50: 山崎渉 [(^^)] 03/05/22 02:06 ID:??? AAS
━―━―━―━―━―━―━―━―━[JR山崎駅(^^)]━―━―━―━―━―━―━―━―━―
51: 山崎渉 [(^^)] 03/05/28 17:18 ID:??? AAS
AA省
52: 名無しさん@Emacs 03/06/16 05:36 ID:??? AAS
>>41
> 外部コマンドを大量に起動するためにオーバヘッドが非常に大きく遅い。
> shから呼ばれる外部コマンドのパスや引数や実装がOSによって大きく異なる。
> あまつさえ/bin/sh自身がOSによって互換性がない。

上のほうでシェルスクリプトがperlより軽いとか言ってるのはウソなんですね。
53: 03/06/16 10:17 ID:??? AAS
ほんとうに sh しか使わんのならかなり軽いよ。
ただ、ある程度以上の規模になると外部コマンドを fork せずに
スクリプトを書くことができない。だから総体として重くなる。

ある程度以上の規模のスクリプトなら、
いったん中間言語にコンパイルしてから実行する perl にはかなわんね。
54: 03/06/17 06:33 ID:??? AAS
>いったん中間言語にコンパイルしてから実行する perl にはかなわんね。

テキスト−>解析−>実行

テキスト−>解析−>中間コード生成−>解析−>実行

Perlの方が遅くないか?JSPの初回起動みたいなもんだろ。
ループとかだと若干有利か。
55: 03/06/29 00:14 ID:??? AAS
@system("echo <HTML>")
56: 山崎 渉 [(^^)] 03/07/15 11:16 ID:??? AAS
AA省
57: 山崎 渉 [(^^)sage] 03/08/02 02:35 ID:??? AAS
   ∧_∧
  (  ^^ )< ぬるぽ(^^)
58: ぼるじょあ ◆ySd1dMH5Gk [(^^)] 03/08/02 05:15 ID:??? AAS
AA省
59: 山崎 渉 [(^^)] 03/08/15 23:04 ID:??? AAS
AA省
60: 04/01/29 09:43 ID:??? AAS
保守
61: ◆s60O0vgq9M 04/01/31 22:01 ID:??? AAS
rrr
62: 04/12/11 02:12 ID:??? AAS
1994年ごろ、
カウンタつっても、Perlかshでつくったものしかなかったよ・・・なつかしや
63: 04/12/11 02:13 ID:??? AAS
うわ、11ヶ月ぶりのレスじゃねーかw
64
(2): 2005/11/29(火)20:35 ID:6biAl2f4(1) AAS
apacheでshでCGI動かす設定ってどうやるんですか?
perlとC(バイナリ)では正常に動くんですけど・・・
shだと500 internal server errorになります。
ちなみにシェルはcsh使ってます
65: 2005/11/30(水)02:21 ID:??? AAS
CGIなんだから、一行目にシェバングパスを書かないとだめだぞと。
66: 2005/11/30(水)07:51 ID:??? AAS
>>64
hello.cgi
-----------------
#!/bin/sh
echo "Content-type: text/html\n\n";
echo "Hello";
67: 2007/05/26(土)09:24 ID:??? AAS
ほす
68: 2008/10/15(水)20:02 ID:CwbSjCAQ(1) AAS
  ぺす
69: 2008/10/21(火)12:33 ID:??? AAS
昔アセンブラでCGI作って動かしてたな(´・ω・`)
70: 2008/11/14(金)13:01 ID:elYW8Na3(1) AAS
>>26
つNKF
71: 2008/11/14(金)18:55 ID:??? AAS
>>64
.shで動かしたいならスクリプトがあるディレクトリに.htaccessを作り、
AddType application/x-httpd-cgi .sh
と書けばよい
72: 2011/01/26(水)22:13 ID:??? AAS
シェルスクリプトでてきとうにURLでこーど

#!/bin/bash

#環境変数[QUERY_STRING]を[&]を空白に変換しパース
_QRYVAL=`echo "$QUERY_STRING" | tr '&' '\t'`

#引数解析
for v in $_QRYVAL
do
#[=]を空白に変換し配列化
v=(`echo "$v" | tr '=' '\t'`)
#formの[name]に[value]を格納(URLデコード)
eval "${v[0]}"="`echo ${v[1]} | tr % = | nkf -emQZ1`"
done
73: 忍法帖【Lv=1,xxxP】 【Dphp1330235948909060】 2012/02/26(日)14:59 ID:??? AAS
t
74: 2013/07/26(金) NY:AN:NY.AN ID:??? AAS
echo "hoshu"
75: 2015/11/11(水)23:47 ID:OBd/4WeX(1) AAS
転職の際に必ず思い出してください。
下記の条件が全て当てはまる会社にご注意下さい。

・IT系 in 東京
・転職会議で2.5点
・転職会議の「その他>2ch情報」の欄で過去の労基2chスレが表示される
76: 2017/12/30(土)13:05 ID:YhlYw6jg(1) AAS
誰でも簡単にネットで稼げる方法など
参考までに、
⇒ 『半藤のブブイウイウレレ』 というサイトで見ることができます。

グーグル検索⇒『半藤のブブイウイウレレ』

QSCHX4VEAB
77: 2023/05/01(月)10:28 ID:??? AAS
イップク♪ (○`ε´○)y-~~~
78: 2023/09/24(日)18:06 ID:??? AAS
~~-y( ̄▽ ̄*)ゥヶヶ♪
79: 2023/10/20(金)01:21 ID:??? AAS
これが幸せってやつなのかな?
1-
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.208s*