SHELL parameter passing notes, try to use double quotes mass participation

#!/bin/bash
function convert(){
        keyword=${1//\\/\\\\\\\\}
        keyword=${keyword//\./\\.}
        keyword=${keyword//\*/\\\\*}
        keyword=${keyword//\&/\\\\&}
        keyword=${keyword//\$/\\\\$}
        keyword=${keyword//\+/\\\\+}
        keyword=${keyword//\=/\\\\=}
        keyword=${keyword//\^/\\\\^}
        keyword=${keyword//\%/\\\\%}
        keyword=${keyword//\!/\\\\!}
        keyword=${keyword//\@/\\\\@}
        keyword = {$ keyword // \ # / #} \\\\ 
        keyword keyword = $ { // \ [/ \\\\ [} 
        keyword keyword = $ { // \] / \\\\]} 
        keyword = {keyword $ // \ - / \\\\ -} 
        keyword keyword = $ { // \ / \\} 
# $ keyword = {keyword // \ / \\\\??} number can not escape to?. Alternatively otherwise unsuccessful 
        keyword keyword = $ { // \ "/ \\\"} 
        echo $ keyword
}

# Call the function, if the mass participation spaces must be double quotes, otherwise it will be considered to be a function of multiple parameters 
repkey = $ (Convert For "$ 2" )
repkey1=$(convert "$2")
newkey=$(convert "$3")

#调用shell脚本
sh xxx.sh /root "rep1" "rep2" "hh" 0

 

Guess you like

Origin www.cnblogs.com/bretzhao/p/11831208.html