10-18-2010
Quote:
because I am expecting no return from export command.
Every single command run on a UNIX/Linux/POSIX system will return an exit status. If that exit status is 0, the shell treats that as a boolean true. Any other exit status is treated as a boolean false.
Regards,
Alister
---------- Post updated at 02:21 PM ---------- Previous update was at 02:14 PM ----------
Quote:
Originally Posted by
alister
That's close but not quite correct. The original version's echo executes if the export command fails. This interpretation's does not.
Regards,
Alister
Actually, export always returns a 0 exit status, so it will never fail. Scrutinizer's code should work just as the original.
That said, I'll leave my post as is since that's a very unusual corner case. In just about every other situation, a command can return a non-zero exit status and the constructs would not be logically equivalent.
Regards,
Alister
This User Gave Thanks to alister For This Post:
10 More Discussions You Might Find Interesting
1. UNIX for Dummies Questions & Answers
I have a variable named "xyz"
Now what will the below snippet mean:
if ( ${?xyz} ) then
....
endif
What does ? signify here.
Thanks (12 Replies)
Discussion started by: vibhor_agarwali
12 Replies
2. Shell Programming and Scripting
I'm having simple question here, and what's the different here? What is the "x" for? Thanks! (5 Replies)
Discussion started by: redstone
5 Replies
3. Shell Programming and Scripting
i have this program in bash shell:
#!/bin/bash
array=(20 20 20 20 20)
i=0
j=0
awk '/%/ {print $3}' try.txt|
while (read s)
arr=$s
i=`expr $i + 1`
echo "$i"
end
how can i convert this into c shell? (1 Reply)
Discussion started by: npatwardhan
1 Replies
4. Post Here to Contact Site Administrators and Moderators
Where can I download the VTC - Unix Shell Scripting Advanced complete video.
I don't know in which thread I should post this question.Plz help me out, or just tell me the link in the reply to this post.
Thanks in advance. (0 Replies)
Discussion started by: villain41
0 Replies
5. Shell Programming and Scripting
Hi all, i have more questions but its all about variables so lets begin
1st, is possible to list all variables ?
Command env display only shell variables, but what if i declared another variable? Command set display more variables but not defined by me.
2nd, what difference is between set... (24 Replies)
Discussion started by: wakatana
24 Replies
6. UNIX for Dummies Questions & Answers
Hello,
I'm working on unix with grep (GNU grep) 2.5.1. I'm going through some of the newer regex syntax using Regular Expression Reference - Advanced Syntax a guide.
ls -aLl /bin | grep "\(x\)"
Which works, just highlights 'x' where ever, when ever.
I'm trying to to get (?:) to work but... (4 Replies)
Discussion started by: MykC
4 Replies
7. Shell Programming and Scripting
Hi all
I've got a question regarding error handling in shell scripts. My background is mainly object oriented programming languages, but for a year or so I've been doing more and more (bash) shell scripting (which I quite enjoy by the way).
To handle errors in my scripts I... (3 Replies)
Discussion started by: script_man
3 Replies
8. Homework & Coursework Questions
Use and complete the template provided. The entire template must be completed. If you don't, your post may be deleted!
1. The problem statement, all variables and given/known data:
I am working on a hands on project. We are creating a script for a corporate phone list. The project I am... (2 Replies)
Discussion started by: SarahBelle7858
2 Replies
9. UNIX for Beginners Questions & Answers
Hi Folks -
I need help converting a piece of code from batch to bash.
Here is the code:
FOR /f "eol=; tokens=1,2,3,4 delims=, " %%i in (Update_Subvars.txt) do (
ECHO alter database %%i.%%j set variable %%k %%l;
)
What it's doing is retrieving the values from this file:
... (2 Replies)
Discussion started by: SIMMS7400
2 Replies
10. UNIX for Beginners Questions & Answers
Hello,
I have a newbe syntax error but I cant find it
syntax error: unexpected end of file
#!/bin/csh
# pe request
#$ -pe mpi_16 32
#### 16 core : 'mpi_16 16' || 24 core : 'mpi_24 24 '
# our Job name
#$ -N test2MD
#$ -S /bin/sh (1 Reply)
Discussion started by: dulceC
1 Replies
LEARN ABOUT CENTOS
shell-quote
SHELL-QUOTE(1) User Contributed Perl Documentation SHELL-QUOTE(1)
NAME
shell-quote - quote arguments for safe use, unmodified in a shell command
SYNOPSIS
shell-quote [switch]... arg...
DESCRIPTION
shell-quote lets you pass arbitrary strings through the shell so that they won't be changed by the shell. This lets you process commands
or files with embedded white space or shell globbing characters safely. Here are a few examples.
EXAMPLES
ssh preserving args
When running a remote command with ssh, ssh doesn't preserve the separate arguments it receives. It just joins them with spaces and
passes them to "$SHELL -c". This doesn't work as intended:
ssh host touch 'hi there' # fails
It creates 2 files, hi and there. Instead, do this:
cmd=`shell-quote touch 'hi there'`
ssh host "$cmd"
This gives you just 1 file, hi there.
process find output
It's not ordinarily possible to process an arbitrary list of files output by find with a shell script. Anything you put in $IFS to
split up the output could legitimately be in a file's name. Here's how you can do it using shell-quote:
eval set -- `find -type f -print0 | xargs -0 shell-quote --`
debug shell scripts
shell-quote is better than echo for debugging shell scripts.
debug() {
[ -z "$debug" ] || shell-quote "debug:" "$@"
}
With echo you can't tell the difference between "debug 'foo bar'" and "debug foo bar", but with shell-quote you can.
save a command for later
shell-quote can be used to build up a shell command to run later. Say you want the user to be able to give you switches for a command
you're going to run. If you don't want the switches to be re-evaluated by the shell (which is usually a good idea, else there are
things the user can't pass through), you can do something like this:
user_switches=
while [ $# != 0 ]
do
case x$1 in
x--pass-through)
[ $# -gt 1 ] || die "need an argument for $1"
user_switches="$user_switches "`shell-quote -- "$2"`
shift;;
# process other switches
esac
shift
done
# later
eval "shell-quote some-command $user_switches my args"
OPTIONS
--debug
Turn debugging on.
--help
Show the usage message and die.
--version
Show the version number and exit.
AVAILABILITY
The code is licensed under the GNU GPL. Check http://www.argon.org/~roderick/ or CPAN for updated versions.
AUTHOR
Roderick Schertler <roderick@argon.org>
perl v5.16.3 2010-06-11 SHELL-QUOTE(1)