Reputation: 43311
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 complicated than *
, for example: home/alex/mydir/*
.
Upvotes: 1
Views: 2833
Reputation: 164
set -o noglob
will stop bash from expanding * and can be removed with 'set +o noglob'
Upvotes: 4
Reputation: 75704
you need to escape your variables, too:
Print "$var"
And in your function:
echo "$1"
Upvotes: 5