[Solved workaround] Os.args and quoted string on commandline

ENVIRONMENT:
OS: Linux Fedora 38
GO VERSION: 1.20.6

CODE FRAGMENT:
for e := 0; e < len(os.Args); e++ {
println(fmt.Sprintf(“Args[%v]=%v”, e, os.Args[e]))
}

CLI LINE:
go run myprogram “xxx yyy”

RESULTS:
Args[0]=/tmp/go-build176778176/b001/exe/myprogram
Args[1]=xxx
Args[2]=yyy

QUESTION:
CharGPT tells me to use double quotes to enclose the passed phrase.
https://chat.openai.com/share/7f7e4690-234f-4e4d-847f-88b90b13667a

The results should be Args[1] holds the entire quoted phrase
and there should be no Args[2]. I need the entire phrase.
What am I doing wrong?

WORK AROUND:
Additional discovery. When I 'run' a go program i'm developing, 
I use a script:
=====
#!/bin/bash
clear
TRG_PKG='main'
BUILD_TIME=$(date +"%Y%m%d.%H%M%S")
GoVersion=N/A
if [[ $(go version) =~ [0-9]+\.[0-9]+\.[0-9]+ ]];
then
    GoVersion=${BASH_REMATCH[0]}
fi
echo Setting $TRG_PKG.BuildTime=$BUILD_TIME
echo Setting $TRG_PKG.GoVersion=$GoVersion
FLAG="-X '$TRG_PKG.BuildTime=$BUILD_TIME'"
FLAG="$FLAG -X '$TRG_PKG.GoVersion=$GoVersion'"
go run -ldflags "$FLAG" $1 $2 $3 $4 $5 $6 $7 $8 $9
exit
====
This sets variables in my program to the build datetime and the 
go version used. The -ldflags is what is causing my problem. 
It attemps to use any named commandline parameter starting 
with a "-" as an -ldflags value, not passing them to my program.

$go_run.sh . --showenv=true "a filename with spaces" "another filename with spaces"
This causes an error.

If I run directly: 
$go run . --showenv=true "a filename with spaces" "another filename with spaces"
I get the wanted result:
Args[0]=/tmp/go-build1651259946/b001/exe/myprogram
Args[1]=--showenv=true
Args[2]=a filename with spaces
Args[3]=another filename with spaces

I did notice, when I used these lines of code:
// This picks-off my --showenv parameter from the commandline
flag_showenv := flag.Bool("showenv", false, "some text here")
flag.Parse()
println("flag.CommandLine.Args: " + fmt.Sprintf("%v", flag.CommandLine.Args()))

Unwanted response:
flag.CommandLine.Args: [a filename with spaces another filename with spaces]
// This strips off all named parametes pre-defined in my program. 
The un-named parameters are all combined into one string with 
no separating mark. :/

So, I guess I will need to use the flag pkg to pick-off the named 
parameters on the commandline, and then use os.Args[] to 
pick-up the unlabeled commandline parameters.

Now I need to figure out how to set the builddate and goversion 
values at run/build/install time.

And… I answered my final question.
DON’T USE -ldflags for ‘run’. Only for ‘build’ and ‘install’