Shell脚本从输入中接受特殊字符

时间:2014-03-11 13:29:20

标签: shell sh

我有接受用户密码的脚本。我们知道密码可以有特殊字符。所以有用户有一些特定的字符,我写的脚本不起作用。

看看

./passwrd.sh sohan$23
sohan3

这是脚本片段

#!/bin/sh
#=============================================================================
#
# DESCRIPTION
#
# Script for creating csbuser in weblogic
#
# USAGE ./create.sh <password>
# where password is OPTIONAL.

if [ $# -eq 1 ]; then
echo $1
#csb_password=`echo "$1" | sed -r 's/\$/\\\$/g'`
fi

有谁能告诉我这里可以做些什么。

1 个答案:

答案 0 :(得分:1)

当您调用./passwrd.sh sohan$23这样的脚本时,$23将会展开。

要将其作为文字字符串,请使用单引号:

./passwrd.sh 'sohan$23'

实施例

$ cat a
#!/bin/bash

echo "the var is $1"

$ var=10
$ ./a a$var
the var is a10

$ ./a 'a$var'
the var is a$var