03-02-2011
Quote:
Originally Posted by
linuxtraining
GNU bash, version 2.05.0(1)-release (sparc-sun-solaris2.9)
Copyright 2000 Free Software Foundation, Inc.
Okay, you're on Solaris. That means #!/bin/sh isn't bash. It's not even proper POSIX. You're getting Sun's weird old "backwards compatible" shell, barely younger than Disco. If you're allowed to use BASH, even the ancient version they have(you're using 2.0, we now have 4.0) is about 20 years newer.
The read + temporary file trick should work in either shell I think, but "<<<" definitely won't.
You should ask your prof which shell you're supposed to be using, since solaris #!/bin/sh is especially painful.
You should also be very grateful that you have GNU date.
10 More Discussions You Might Find Interesting
1. UNIX for Dummies Questions & Answers
I am looking for the correct syntax on the expr command in UNIX. I have a script that I am building at the moment. the script is creating file1 that is an actual .sql file that is going inside the oracle database to get some information in there. It take that information, puts it inside another... (2 Replies)
Discussion started by: wolf
2 Replies
2. UNIX for Advanced & Expert Users
Hello,
How do i translate datevalues in unix to normal dates.
and how do i translate normal dates in to datevalues.
I'm using the unix-date.
Sample:
1067949360 to 4-11-03 12:36
and
4-11-03 12:36 to 1067949360
I want to built a script with a question to the user: give in date... (4 Replies)
Discussion started by: Frederik
4 Replies
3. Shell Programming and Scripting
Hi I need to subtract one day from date1=`/bin/date +%d`
So I used
date=`/usr/ucb/expr $date1 - 1`
The only thing is if date1 is a single digit like 08, date will be 8 instead of 08.
How can I avoid losing 0?
Thanks for all your help!!! (4 Replies)
Discussion started by: whatisthis
4 Replies
4. UNIX for Dummies Questions & Answers
hi guys....
i hava a command expr... where i m adding a value in a loop
like
Tc=`expr $Tc\+ $l`
where
Tc is declred as a variable and every time l contains a new vaue
if
Tc =0 initially
and l =2
Tc should be equal to 0+ 2
and then
l = 4
Tc = 2+4
and dispaly as 6
but after... (5 Replies)
Discussion started by: madhu_aqua14
5 Replies
5. UNIX for Dummies Questions & Answers
Hi friends
how can i execute expr $va1 * $var2
provided i m not supposed to use '/' also the
nglob variable is turned off. (4 Replies)
Discussion started by: ashishj
4 Replies
6. Shell Programming and Scripting
Hello,
what can I do to convert a decimal number (001-366) into the day of the year it represent in the format of mm-dd-yyyy ?
I know about the date +%j, it gives me the number for the current date, what about a reverse of this, is there such a thing?
My number resides in a var, what can I do to... (3 Replies)
Discussion started by: gio001
3 Replies
7. Shell Programming and Scripting
Hi
Can anyone explain me the usage of this command and the arguments used here and what will be the expected output :
v_num=`expr nav_d_20100204_1759 : '*\(*\)'`
what will be the value returned in v_num.
Thanks in Advance!!!
Regards
Naveen Purbia (3 Replies)
Discussion started by: trying_myluck
3 Replies
8. Shell Programming and Scripting
I'm trying to check if a variable'd string is only one character and use that in an if statement the only way I could find is:
$expr "${var}" : . # expr STRING : regrep
where the "." is the grep wildcard for any single character.
Whats wrong with my code here and is there a... (3 Replies)
Discussion started by: Tewg
3 Replies
9. UNIX for Dummies Questions & Answers
I am trying to read a txt file and trying to translate multiples spaces into single spaces so the file is more organized, but whenever I try the command:
tr ' ' ' ' w.txt
The output is:
tr: extra operand `w.txt'
Try `tr --help' for more information.
Can someone please help? :wall:
... (2 Replies)
Discussion started by: Nonito84
2 Replies
10. Shell Programming and Scripting
Hello,
I have an input file contaning following data:
< 12345;5454;77;qwert< yuyuy;ruwuriwru> yyyw;
> 35353;68686;424242;hrjwhrwrwy< dgdgd;
I have first character as '<' or '>'and after that one space is their in each line
I just want to replace 1st space encountered after < or >... (3 Replies)
Discussion started by: abhi001cse
3 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)