开发者

Prevent * to be expanded in the bash script

开发者 https://www.devze.com 2022-12-24 11:13 出处:网络
Linux bash script: #!/bin/bash function Print() { echo $1 } var=\"*\" Print $var Execution results: alex@alex-linux:~/tmp$ ./sample-script

Linux bash script:

#!/bin/bash

function Print()
{
    echo $1
}

var="*"
Print $var

Execution results:

alex@alex-linux:~/tmp$ ./sample-script 
sample-script

* is expanded to the list of files, which is actually script itself. How can I prevent this and see actual variable value? In general case, var can be more compli开发者_C百科cated than *, for example: home/alex/mydir/*.


you need to escape your variables, too:

Print "$var"

And in your function:

echo "$1"


set -o noglob

will stop bash from expanding * and can be removed with 'set +o noglob'

0

精彩评论

暂无评论...
验证码 换一张
取 消