Question

Suppose I have a program named abc in the search path, and I write a script containing the following:

#!/bin/sh
abc() {
    echo Hello
}
$1

Invoking this script with a parameter abc calls the function. Is there a way to always run the external program instead?

Was it helpful?

Solution

OK, this seems to do the job:

#!/bin/sh
abc() {
    echo Hello
}

# calls whatever the argument contains in a new context
sh -c $1

# I can still call my function
abc
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top