Skip to main content

Hello ALL and thanks in advance.

I have searched the forum for my situation and have been unable to locate a solution. I'veI've got a script that I am passing arguments/options/parameters to at the command line. One of the values has a space in it, which I have put in double quotes. It might be easier to provide an example. Forgive my usage of arguments/options/parameters.

This is an example of the code I have that is not working as I expect it to.expected:

Any help I can get on this will be greatly appreciated... I'veI've tried escaping the double quotes, without any success.

Thank you for your time and efforts in helping me figure this out.

Regards, Daniel

Hello ALL and thanks in advance.

I have searched the forum for my situation and have been unable to locate a solution. I've got a script that I am passing arguments/options/parameters to at the command line. One of the values has a space in it, which I have put in double quotes. It might be easier to provide an example. Forgive my usage of arguments/options/parameters.

This is an example of the code I have that is not working as I expect it to.

Any help I can get on this will be greatly appreciated... I've tried escaping the double quotes, without any success.

Thank you for your time and efforts in helping me figure this out.

Regards, Daniel

I've got a script that I am passing arguments/options/parameters to at the command line. One of the values has a space in it, which I have put in double quotes. It might be easier to provide an example. Forgive my usage of arguments/options/parameters.

This is an example of the code I have that is not working as expected:

I've tried escaping the double quotes, without any success.

Source Link
DNadler
  • 23
  • 1
  • 3

Passing options/args/parameters with spaces from the script to a function within

Hello ALL and thanks in advance.

I have searched the forum for my situation and have been unable to locate a solution. I've got a script that I am passing arguments/options/parameters to at the command line. One of the values has a space in it, which I have put in double quotes. It might be easier to provide an example. Forgive my usage of arguments/options/parameters.

$:  ./test1.ksh -n -b -d "Home Videos"

My problem is setting a variable to "Home Videos" and it being used together. In my example, the -d is to specify a directory. Not all the directories have spaces, but some do in my case.

This is an example of the code I have that is not working as I expect it to.

#!/bin/ksh

Function1()
{
echo "Number of Args in Function1: $#"
echo "Function1 Args: $@"
SetArgs $*
}

SetArgs()
{
echo -e "\nNumber of Args in SetArgs: $#"
echo "SetArgs Args: $@"
while [ $# -gt 0 ]
do
  case $1 in
    -[dD])
    shift
    export DirectoryName=$1
    ;;
    -[nN])
    export Var1=No
    shift
    ;;
    -[bB])
    export Var2=Backup
    shift
    ;;
    *)
    shift
    ;;
  esac
done
Function2
}

Function2()
{
echo "Directory Name: ${DirectoryName}"
}

Function1 $*

When I run this, I'm getting only Home for the DirectoryName instead of Home Videos. Seen below.

 $ ./test1.ksh -n -b -d "Home Videos"
 Number of Args in Function1: 5
 Function1 Args: -n -b -d Home Videos

 Number of Args in SetArgs: 5
 SetArgs Args: -n -b -d Home Videos
 Var1 is set to:  No
 Var2 is set to:  Backup
 Directory Name: Home

What I am expecting and I have not been able to get it to happen is:

 $ ./test1.ksh -n -b -d "Home Videos"
 Number of Args in Function1: 4
 Function1 Args: -n -b -d "Home Videos"

 Number of Args in SetArgs: 4
 SetArgs Args: -n -b -d "Home Videos"
 Var1 is set to:  No
 Var2 is set to:  Backup
 Directory Name: Home Videos     <-- Without double quotes in the final usage.

Any help I can get on this will be greatly appreciated... I've tried escaping the double quotes, without any success.

Thank you for your time and efforts in helping me figure this out.

Regards, Daniel