Reputation:
I am confused; I run a script, with sh -c , but if I want to pass a parameter, it will be ignored.
example:
# script.sh
param=$1
echo "parameter is: " $param
If I run it as
sh -c ./script.sh hello
I get nothing in the output
Why is this happening? How can I avoid this?
Upvotes: 1
Views: 50
Reputation: 3593
This will work for you:
sh -c "./script.sh hello"
If you run it that way:
sh -c ./script.sh hello
than hello
became sh
's second parameter and ./script.sh
is run with none parameters.
Upvotes: 1
Reputation: 4317
The -c
switch accepts a single argument. The shell will be doing the parsing itself. E.g.
sh -c './script.sh hello'
Upvotes: 0