请问如何将[ab]原封不动的传给Shell脚本?
这样一个叫s.sh的脚本:
#! /bin/ksh
echo $1
怎样才能让它的输出结果为[ab]?
试过了下面这些都不行:
./s.sh [ab]
./s.sh \[ab]
./s.sh '[ab]'
./s.sh '\[ab]'
结果不是a就是\[ab]。
求高手指点!
[解决办法]
./s.sh "[ab]"
记住,shell解析命令前将转义一次""或者不带""的部分, 将不转义''包裹的部分,另外,[]这些符号影响命令解析,必须"",''包裹,具体转义问题自己考虑。
[解决办法]
你确定?
我bashshell没这个毛病,通配符和正则都是程序解析的,不是shell解析的。
[解决办法]
LZ估计是solaris系统,用了ksh,跟bash有点不一样
多试试转义之类的方法吧
[解决办法]
\[ab\]
[解决办法]
centos用/bin/bash,毫无问题啊,我不试验一下是不会回复你的。
[User:root Time:18:43:13 Path:/home/liangdong/shell]$ cat test.sh #!/bin/sh echo $1;[User:root Time:18:43:15 Path:/home/liangdong/shell]$ ./test.sh [ab][ab][User:root Time:18:43:19 Path:/home/liangdong/shell]$
[解决办法]
$ cat cmd.ksh
#!/bin/ksh
print $1;
$ ./cmd.ksh "[ab]"
[ab]
$
[解决办法]
貌似所有情况都行啊:
zhu@ubuntu:~/sed$ cat cmd.ksh #!/bin/kshecho $1;zhu@ubuntu:~/sed$ ./cmd.ksh [ab][ab]zhu@ubuntu:~/sed$ ./cmd.ksh '[ab]'[ab]zhu@ubuntu:~/sed$ ./cmd.ksh "[ab]"[ab]zhu@ubuntu:~/sed$ uname -aLinux ubuntu 3.2.0-24-generic #39-Ubuntu SMP Mon May 21 16:52:17 UTC 2012 x86_64 x86_64 x86_64 GNU/Linuxzhu@ubuntu:~/sed$ dpkg -l|grep kshii ksh 93u-1 The real, AT&T version of the Korn shellzhu@ubuntu:~/sed$
[解决办法]