f you don't mind, I have a couple questions to start with:
1) How does this line of code work:
Code:
/^ID (\w+)/ and $Gene = $1;
I think it's saying: if the regEx finds a match, assign what's in the parenthesis to $Gene.
[...]
I just don't understand how you are able to do make a conditional statement
without an 'if ' construct. Can you please elaborate on how this works?
Camel II tells us that the term "Short-Circuit"
refers to the fact that they "determine the truth of the statement
by evaluating the fewest number of operands possible."
So essentially these operators stop the chain of evaluation
of an expression as early as possible.
That is another key to their value.
So only if the fisrt expression returns true (i.e. if there is a match)
evaluate the second one (i.e. set $Gene to $1).
Quote:
Code:
if (/^CC -!- FUNCTION:/../CC -!- SUBCELLULAR/) {
It seems like this regEx contains four slashes.
I've never seen one like that.
I assume this is used to get the text
in between FUNCTION and SUBCELLULAR, but again,
I just don't understand how it works.
Right, it's simply the range .. operator:
Code:
$ print '
junk
start
yes
yes
end
junk
'|perl -ne'print if/start/../end/'
start
yes
yes
end
(see perldoc perlop | less -p'range operator' for more).
When reading over some perl code in a software document, I came across an assignment statement like this
$PATH = ${PROJECT}/......./....
In this particular form of scalar variable assignment, what does the curly braces operators do ? Also, what is the benefit in doing scalar assignment this... (3 Replies)
I am sure there should exist a chomp like Perl operator in Bash using which I can literally remove new line characters as show below:
Any clue? (3 Replies)
Hi,
I have a variable, $sername, and I would like to display this variable only if it *does not* contain either of these two tags: *DTI*FA* or *DIFF*FA*.
I think the syntax for my 'or' operator is off. The variable $sername is continuously changing in an outer loop (not shown), but at the... (4 Replies)
I know that when using 'while (<FILE>) {}', Perl reads only one line of the file at one time, and store it in '$_'.
Can I change some parameters so that 'while (<>) {}' can read more than one lines, like 2 or 5 lines at one time?
Thanks for the help! (1 Reply)
Hi
What is the syntax for if statement using && and || operator?
if && ] ||
here its giving me an error to this if statement
any suggestion?? (2 Replies)
Hi,
I was hoping someone could explain this please :)
I'm using bash, scientific linux... and I don't know what else you need to know. With
awk '{ if( 0.3 == 0.1*3) print $1}' file.dat
nothing will be printed since apparently the two numbers do not equate. (Using 0.3 != 0.1*3 is seen... (4 Replies)
Hey guys,
This is purely just a little bit of fun with awk. I realize this this isn't that constructive so please remove if need be.
Your goal:
Create a one line awk script that generates a diamond shape of any
size. Both the size of the diamond (measured by its middle line) and
the... (7 Replies)
how can i use like operator in IF statement. Below is correct format, please guide
if ; then
CT_ACT_FILE_NAME=`echo FINACLE'
else
CT_ACT_FILE_NAME=`echo not listed'
fi
---------- Post updated at 04:58 PM ---------- Previous update was at 04:56 PM ----------
Please use CODE... (6 Replies)
I have to print the number of stars that increases on each line from the minimum number until it reaches the maximum number, and then decreases until it goes back to the minimum number. After printing out the lines of stars, it should also print the total number of stars printed.
I have tried... (13 Replies)
Discussion started by: rohit_shinez
13 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)