Pass parameters that contain whitespaces via shell variable

后端 未结 4 1236
南方客
南方客 2021-01-23 12:30

I\'ve got a program that I want to call by passing parameters from a shell variable. Throughout this question, I am going to assume that it is given by

#!/bin/sh         


        
4条回答
  •  臣服心动
    2021-01-23 13:07

    This can be solved with xargs. By replacing

    count-args $X
    

    with

    echo $X | xargs count-args
    

    I can use backslashes to escape whitespaces in $X, e.g.

    X="Hello\\ World"
    echo $X | xargs count-args
    

    prints out 1 and

    X="Hello World"
    echo $X | xargs count-args
    

    prints out 2.

提交回复
热议问题