Here is the problem: always keep in mind that the shell will do a simple text replacement to replace variables with their contents. This is very versatile on one hand but can lead to unexpected behaviour on the other.
Consider the following lines:
When the shell executes this it shell will first replace "$variable" with "abc 123", only then execute "command abc 123". It would even be possible to "execute" a variables contents directly:
This replacement process is done in several different steps. Look up the details under "command evaluation [in the] Korn shell".
Your variable contents now contain the pipe-symbol ("|"), which is part of the regular shell syntax. After the replacement phase the shell will end up with a command which looks like a pipeline (but of course can't be executed). This is the reason for the syntax error.
The trick is to prevent the shell from interpreting the contents of your variables so it can't confuse these with command parts. This is why elixir_sinari suggested the double quotes around the variable names - they do exactly this.
Hi All,
My input file name is 1.sh
the contents of file are
cat status2.txt | while read filename
do
echo "$filename"
echo "first content of the file is ${filename}"
echo "second content of the file is ${filename}"
echo "second content of the file is ${filename}"
if } -eq 0 -a... (1 Reply)
Hi..
Im using the following script to find whether the present day is monday or not. If it is monday it has to do a specific set of things.
#!/bin/sh
Present_Date=`date`
LOAD_DAY=`date -d "$Present_Date" | cut -d " " -f 1`
echo $LOAD_DAY
if ;then
echo "Monday"
#statements;... (6 Replies)
Hi All,
I have a script which is based on calculating current time
The script looks like this:
whenever i try to run the script it gives me error:Please advice wherther i have made mistake with if condition or with for loop??
The code :
set -x
#!/usr/bin/ksh
set -x... (7 Replies)
Hello all! I need help in debugging following script. I have no idea where I am going wrong.
#!/bin/bash
for p1 in A1 TM MP
do
for p2 in A1 TM MP
do
for mp1 in N1 N2
do
for mp2 in N1 N2
do
for mp3 in N1 N2
do
for mp4 in N1 N2
do
for... (7 Replies)
Hi Guys,
Can you please help me to check if my condition is correct.
if &&
then
if ; then
# active
SE_USERID_LUZON_5="A"
elif ; then
# not active
SE_USERID_LUZON_5="D"
${ECHO_CMD}... (3 Replies)
I'm trying to run following code:
while
do
echo "Hello World"
done
but I'm getting error on first line:
./test: line 1: syntax error near unexpected token `('
can anyone please tell me who can i run this loop. Also please tell me what will be syntax of do while loop in case i... (11 Replies)
please follow below code
if ; then
its giving me an error as "test1.sh: line 3: r=$(eval echo '$lck_'$TABLE != "")
if
can anyone tell me how to do inside if condition...with out use any variable..
TIA (6 Replies)
Testing this with KSH on RHEL
The bellow code works but i can't seem to handle the exit status of the unix command when it fails... i wanted to put something like >/dev/null 2>&1 to manage standard output and standard error but it changes my logic and the code doesn't work cause it doesn't... (11 Replies)
Hi,
I have an if condition on executing it is giving syntax error as below:
--------------------------------------------------------------------------------------
line 61: syntax error in conditional expression
./play_test.sh: line 61: syntax error near `]'
./play_test.sh: line 61: ` if... (2 Replies)
Hi Team,
If condition is not working properly and getting below error
# ./score1.sh
Enter your score ('q' for quit): 102
Enter your score ('q' for quit): q
./score1.sh: line 9: q: integer expression expected
Average is: 102%.
Exit.
Actual code
# Calculate the average of given... (3 Replies)
Discussion started by: Torrid
3 Replies
LEARN ABOUT OPENSOLARIS
shell
shell(1F) FMLI Commands shell(1F)NAME
shell - run a command using shell
SYNOPSIS
shell command [command] ...
DESCRIPTION
The shell function concatenate its arguments, separating each by a space, and passes this string to the shell ($SHELL if set, otherwise
/usr/bin/sh).
EXAMPLES
Example 1 A sample output of shell command.
Since the Form and Menu Language does not directly support background processing, the shell function can be used instead.
`shell "build prog > /dev/null &"`
If you want the user to continue to be able to interact with the application while the background job is running, the output of an exe-
cutable run by shell in the background must be redirected: to a file if you want to save the output, or to /dev/null if you don't want to
save it (or if there is no output), otherwise your application may appear to be hung until the background job finishes processing.
shell can also be used to execute a command that has the same name as an FMLI built-in function.
NOTES
The arguments to shell will be concatenate using spaces, which may or may not do what is expected. The variables set in local environments
will not be expanded by the shell because "local" means "local to the current process."
ATTRIBUTES
See attributes(5) for descriptions of the following attributes:
+-----------------------------+-----------------------------+
| ATTRIBUTE TYPE | ATTRIBUTE VALUE |
+-----------------------------+-----------------------------+
|Availability |SUNWcsu |
+-----------------------------+-----------------------------+
SEE ALSO sh(1), attributes(5)SunOS 5.11 5 Jul 1990 shell(1F)