user393267
user393267

Reputation:

Why when I run sh -c [script], it won't accept any positional parameters?

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

Answers (2)

pawel7318
pawel7318

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

Roberto Reale
Roberto Reale

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

Related Questions