Passing arguments to a function activated through an If-statement (BASH)
up vote
-1
down vote
favorite
I need to activate a function through an If-statement, and THEN pass arguments to the function.
In this example I want to delete customer 4 and 5 at the same time. Previously, before having the If-statement, I would use "delete_customers 4 5" to do this. Now, I need to first make a selection out of multiple functions, and THEN pass this argument to the function.
How would I go about ASKING for arguments, and then PASSING them to a function when I'm already in the script?
I've tried using read and then using the output as a variable and putting it after the name of the function when it is called, but that does not work.
SELECTION=$'Enter the number of the function you would like to use: n1.
Delete customersnn'
read -p "$SELECTION"
if [ "$REPLY" == "1" ]; then
delete_customers
else
echo "Function does not exist"
fi
And the corresponding function:
delete_customers ()
inputFile="input.csv"
tempFile="temp.csv"
outputFile="output.csv"
for i in "$@";
do
awk -F ";" -v customerNr=$i '($1 != customerNR) print ' <input.csv> >
$tempFile && mv $tempFile "$inputFile"
done
mv "$inputFile" $outputFile
Sample input:
Customers
1
2
3
4
5
Sample output: (with argument 4 5)
Customers
1
2
3
bash function unix arguments parameter-passing
add a comment |
up vote
-1
down vote
favorite
I need to activate a function through an If-statement, and THEN pass arguments to the function.
In this example I want to delete customer 4 and 5 at the same time. Previously, before having the If-statement, I would use "delete_customers 4 5" to do this. Now, I need to first make a selection out of multiple functions, and THEN pass this argument to the function.
How would I go about ASKING for arguments, and then PASSING them to a function when I'm already in the script?
I've tried using read and then using the output as a variable and putting it after the name of the function when it is called, but that does not work.
SELECTION=$'Enter the number of the function you would like to use: n1.
Delete customersnn'
read -p "$SELECTION"
if [ "$REPLY" == "1" ]; then
delete_customers
else
echo "Function does not exist"
fi
And the corresponding function:
delete_customers ()
inputFile="input.csv"
tempFile="temp.csv"
outputFile="output.csv"
for i in "$@";
do
awk -F ";" -v customerNr=$i '($1 != customerNR) print ' <input.csv> >
$tempFile && mv $tempFile "$inputFile"
done
mv "$inputFile" $outputFile
Sample input:
Customers
1
2
3
4
5
Sample output: (with argument 4 5)
Customers
1
2
3
bash function unix arguments parameter-passing
add a comment |
up vote
-1
down vote
favorite
up vote
-1
down vote
favorite
I need to activate a function through an If-statement, and THEN pass arguments to the function.
In this example I want to delete customer 4 and 5 at the same time. Previously, before having the If-statement, I would use "delete_customers 4 5" to do this. Now, I need to first make a selection out of multiple functions, and THEN pass this argument to the function.
How would I go about ASKING for arguments, and then PASSING them to a function when I'm already in the script?
I've tried using read and then using the output as a variable and putting it after the name of the function when it is called, but that does not work.
SELECTION=$'Enter the number of the function you would like to use: n1.
Delete customersnn'
read -p "$SELECTION"
if [ "$REPLY" == "1" ]; then
delete_customers
else
echo "Function does not exist"
fi
And the corresponding function:
delete_customers ()
inputFile="input.csv"
tempFile="temp.csv"
outputFile="output.csv"
for i in "$@";
do
awk -F ";" -v customerNr=$i '($1 != customerNR) print ' <input.csv> >
$tempFile && mv $tempFile "$inputFile"
done
mv "$inputFile" $outputFile
Sample input:
Customers
1
2
3
4
5
Sample output: (with argument 4 5)
Customers
1
2
3
bash function unix arguments parameter-passing
I need to activate a function through an If-statement, and THEN pass arguments to the function.
In this example I want to delete customer 4 and 5 at the same time. Previously, before having the If-statement, I would use "delete_customers 4 5" to do this. Now, I need to first make a selection out of multiple functions, and THEN pass this argument to the function.
How would I go about ASKING for arguments, and then PASSING them to a function when I'm already in the script?
I've tried using read and then using the output as a variable and putting it after the name of the function when it is called, but that does not work.
SELECTION=$'Enter the number of the function you would like to use: n1.
Delete customersnn'
read -p "$SELECTION"
if [ "$REPLY" == "1" ]; then
delete_customers
else
echo "Function does not exist"
fi
And the corresponding function:
delete_customers ()
inputFile="input.csv"
tempFile="temp.csv"
outputFile="output.csv"
for i in "$@";
do
awk -F ";" -v customerNr=$i '($1 != customerNR) print ' <input.csv> >
$tempFile && mv $tempFile "$inputFile"
done
mv "$inputFile" $outputFile
Sample input:
Customers
1
2
3
4
5
Sample output: (with argument 4 5)
Customers
1
2
3
bash function unix arguments parameter-passing
bash function unix arguments parameter-passing
asked 20 hours ago
Falco
12
12
add a comment |
add a comment |
active
oldest
votes
active
oldest
votes
active
oldest
votes
active
oldest
votes
active
oldest
votes
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53224117%2fpassing-arguments-to-a-function-activated-through-an-if-statement-bash%23new-answer', 'question_page');
);
Post as a guest
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password