(solved) Shell scripting to access SQLPLUS using variable

I have shell script which will try to login to SQL Plus and retrieve some data, based on the outcome i will proceed further

Below is the content of the file

pebblz02% cat test1.ksh
#! /bin/ksh

dummyvar=`sqlplus -S csm_admin/csm_admin@SIDNAME <<EOF echo hi; exit; EOF`

Error message on execution of test1.ksh

pebblz02% test1.ksh
SQL*Plus: Release 11.1.0.7.0 - Production Copyright (c) 1982, 2008, Oracle. All rights reserved. Use SQL*Plus to execute SQL, PL/SQL and SQL*Plus statements. 
Usage 1: sqlplus -H | -V -H Displays the SQL*Plus version and the usage help. 
-V Displays the SQL*Plus version. Usage 2: sqlplus [ [<option>] [<logon>] [<start>] ] <option> is: [-C <version>] [-L] [-M "<options>"] [-R <level>] [-S] -C <version> 
Sets the compatibility of affected commands to the version specified by <version>. 
The version has the form "x.y[.z]". For example, -C 10.2.0 -F Enables the failover mode for a RAC environment. -L Attempts to log on just once, 
instead of reprompting on error. -M "<options>" Sets automatic HTML markup of output. The options have the form: 
HTML [ON|OFF] [HEAD text] [BODY text] [TABLE text] [ENTMAP {ON|OFF}] [SPOOL {ON|OFF}] [PRE[FORMAT] {ON|OFF}] -R <level> 
Sets restricted mode to disable SQL*Plus commands that interact with the file system. The level can be 1, 2 or 3. The most restrictive is -R 3 which disables all 
user commands interacting with the file system. -S Sets silent mode which suppresses the display of the SQL*Plus banner, prompts, and echoing of commands. 
<logon> is: (<username>[/<password>][@<connect_identifier>] | /) [AS SYSDBA | AS SYSOPER | AS SYSASM] | /NOLOG | [EDITION=value] Specifies the database 
account username, password and connect identifier for the database connection. Without a connect identifier, SQL*Plus connects to the default database. 
The AS SYSDBA, AS SYSOPER and AS SYSASM options are database administration privileges. <connect_identifier> can be in the form of Net Service Name or Easy 
Connect. @[<net_service_name> | [//]Host[:Port]/<service_name>] <net_service_name> is a simple name for a service that resolves to a connect descriptor. 
Example: Connect to database using Net Service Name and the database net service name is ORCL. sqlplus myusername/mypassword@ORCL Host specifies the host 
name or IP address of the database server computer. Port specifies the listening port on the database server. <service_name> specifies the service name of the 
database you want to access. Example: Connect to database using Easy Connect and the Service name is ORCL. sqlplus myusername/mypassword@Host/ORCL 
The /NOLOG option starts SQL*Plus without connecting to a database. The EDITION specifies the value for Application Edition <start> is:
@<URL>|<filename>[.<ext>] [<parameter> ...] Runs the specified SQL*Plus script from a web server (URL) or the local file system (filename.ext) 
with specified parameters that will be assigned to substitution variables in the script. When SQL*Plus starts, and after CONNECT commands, 
the site profile (e.g. $ORACLE_HOME/sqlplus/admin/glogin.sql) and the user profile (e.g. login.sql in the working directory) are run. The files may contain 
SQL*Plus commands. Refer to the SQL*Plus User's Guide and Reference for more information.

In the shell script if i use the following things its able to login, not sure what's happening.

pebblz02% cat test.ksh
#! /bin/ksh
sqlplus -S CSM_ADMIN/CSM_ADMIN@AWCCFG4 << EOF

can some one point why i am not able to login in the 1st format.

---------- Post updated at 10:44 AM ---------- Previous update was at 10:24 AM ----------

I used the below format

dummyvar=`sqlplus -S csm_admin/csm_admin@AWCCFG4 << EOF
select PATCH_NAME from csm_admin.csm_config_log where patch_name = 'PATCH_LOG';
EOF`
echo "system date is " $dummyvar

its working, I am not sure if i dont give space its not working as expected.