How to pass quoted parameters to another program

前端 未结 2 1985
慢半拍i
慢半拍i 2021-01-24 18:05

In a bash script, I need to pass a parameter to another program. The parameter has spaces in so must be quoted. Everything works fine in this simple case 1:

/bin         


        
2条回答
  •  梦谈多话
    2021-01-24 18:13

    Use an array; this is why they were introduced.

    FOO="ghi"
    # Contains one element, but not the literal quotes
    DEFAULTS=(--param="abc def $FOO")
    # command gets 1 argument, the single element of the array
    /some/command "${DEFAULTS[@]}"
    
    # Two elements
    DEFAULTS=(--param="abc def $FOO" --other="foo bar")
    # command gets 2 arguments
    /some/command "${DEFAULTS[@]}"
    

提交回复
热议问题