这样一个叫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解析命令前将转义一次""或者不带""的部分, 将不转义''包裹的部分,另外,[]这些符号影响命令解析,必须"",''包裹,具体转义问题自己考虑。
虽然你执行时参数使用了引号,但是你脚本中的输出语句是echo $1,其中的$1是没有引号的
你可以改为这样看看
echo "$1"
这样,./s.sh '[ab]'
就会输出[ab]了
不管你当前目录下有没有a或b文件