Check if the string is empty

I am reading from a file and executing the jobs with/without parameters as the job requires.

File

job1 R
job2
job3 Y 123
if [ -z $params ]
then
 <job>.ksh 
else
 <job>.ksh $params
fi

This works fine if the line read from the file has parameters

it executes like

job1.ksh R

But for the one with no parameters it executes like

job2.ksh job2

Can someone please help?

Try

if [ -z "$params" ]

Why do you need the if [ -z ... ] ? If $params is empty, just supply it to jobs2.ksh...

EDIT: And, if $params holds "jobs2", then sth with your read (which you do not show) must be wrong.