On 19 Dec 2003 10:01:27 +0900,
        In article <m3oeu5zkm0.fsf_-_@nightmare.hm.taito.co.jp>,
        Takahide Nojima <nojima@taito.co.jp> wrote:

>  [Q] shで\%を%に自動で解釈する仕様って何故存在するのでしょうか?

そういう仕様だから。% だけを特別扱いしてるわけじゃない。

$ ps -p $$
   PID TTY        TIME COMD
 22510 pts/8      0:00 sh
$ cat pureecho.c
#include <stdio.h>
main(int argc, char *argv[])
{
        while (--argc) {
                fputs(*++argv, stdout);
                putchar(' ');
        }
        putchar('\n');
        return 0;
}
$ cc pureecho.c
$ ./a.out \~\!\@\#\$\%\^\&\*\(\)\-\+
~!@#$%^&*()-+ 
$ 

もちろん、shell に限った話でもない。

-- 
池田研二  稲城駅前在住