Sponsored Content
Full Discussion: Script problems
Top Forums Shell Programming and Scripting Script problems Post 302302229 by methyl on Monday 30th of March 2009 12:03:29 PM
Old 03-30-2009
The main problem here is the pipe character "|" towards the end of each string. This character is wrecking the syntax of your expanded "for" line and each echo statement because shell is interpreting it.
We can use unix "dirname" and "basename" commands to break the long line into the directory name and the trailing string. Then extracting the two parameters can be simplified by changing the pipe character "|" to an equals sign "=" to create a common delimiter for each field.
To handle a string containing awkward characters such as pipe, we must keep it between double quotes characters and avoid expansion by shell.
For example replacing the "for" loop with a "while" loop:

Code:
#!/sbin/sh
clear
purgelist="/var/opt/moto/live/scripts/old_messages_purge_list"
cat ${purgelist} | while read line
do 
        filepath="`dirname ${line}`"
        # Extract string containing ext and filedays
        # Change pipe character to = character to make common delimiter
        work=`basename "${line}"|sed -e "s/\|/=/g"`
        filedays=`echo "${work}"|cut -f2 -d=`
        ext=`echo "${work}"|cut -f3 -d=`
        echo "filepath=${filepath}"
        echo "ext=${ext}"
        echo "filedays=${filedays}"
done

 

10 More Discussions You Might Find Interesting

1. UNIX for Dummies Questions & Answers

having ksh script problems

well i have written a script to telnet and ftp to all my servers, the script runs great, BUT i can not for the life of me figure out how to get the script to repeat if the conditions are not filled. this is what i have so far ######################################### TorF(){ echo T... (4 Replies)
Discussion started by: jerzey4life
4 Replies

2. UNIX for Dummies Questions & Answers

Copy Script Problems .....

I got this script: print -n "Enter file name: " read name .... ..... ..... etc but at the prmpt, when I press enter (without typin a word), comes up with sum error message, is there away of getting it not to print that message?? (8 Replies)
Discussion started by: Makaveli.2003
8 Replies

3. UNIX for Dummies Questions & Answers

script problems

Hi, Here is an example of a problem I have: File2: contain the following lines: a^ aaa^aa aa^~ b^ bbb^bb bb^~ c^ ccc^cc cc^~ d^ dddd^dd dd^~ File1: contain the following lines: b^ bbb^bb bb^~ c^ ccc^cc cc^~ I get File2 as input and I want to do as following: for each line in... (3 Replies)
Discussion started by: hellsd
3 Replies

4. Shell Programming and Scripting

Problems with an if/then loop within a script

Hi there, I have written a script to clear out log files from the var/tmp dir. It works up to a point. What I needed to do was to exit the script if there was no files to be deleted. I can get this working on a test script but when I implement it into my program it errors out with a `then` not... (3 Replies)
Discussion started by: lodey
3 Replies

5. Shell Programming and Scripting

Shell script problems to do

Does anyone know a good site to do shell script problems? (0 Replies)
Discussion started by: cleansing_flame
0 Replies

6. Shell Programming and Scripting

two script problems

i have two problems with my phone book script the first i want to only allow a valid name if it has letters and spaces not a number in the name. so "joe smith" is ok "joe smith1" is not ok. the second problem is how can i cut a name out of a txt file i have this as my test txt file joe blogs... (3 Replies)
Discussion started by: zappedback
3 Replies

7. UNIX for Dummies Questions & Answers

Problems with script and Cron

Hi Guys, total newbie here, Ive read through some of the threads about cron and scripts not working and have still drawn a blank as to why mine isnt working correctly. I have a script that runs the ausearch with a set of criteria i have setup, the only access i have to the system is via... (5 Replies)
Discussion started by: richie190784
5 Replies

8. Shell Programming and Scripting

shell script to call perl script problems

Ok, don't ask me why, but all calls to perl must be called by a shell script. Its really not ideal, but its what I have to work with. Calling it isnt the issue, its passing in the arguments. I have about 1000 perl scripts to call by a shell script. Right now, I'm executing the shell script... (3 Replies)
Discussion started by: regexnub
3 Replies

9. Homework & Coursework Questions

Problems executing script

Hi, I'm a complete novice to Linux and UNIX. I'm having trouble getting a script to execute properly. I did a similar script earlier in the semester with no problems. For whatever reason I can't get this one to work. Any help would be greatly appreciated as I'm completely lost and frustrated at... (5 Replies)
Discussion started by: Lindy70
5 Replies

10. Shell Programming and Scripting

Shell Script Problems

Hi, I'm newbie in the shell script world and i want to solve some problems I am experiencing. My main goal is to create a ksh script to use 2 text files as input to execute a local shell script(create user commands in the criar.users.aix file) through a ssh connection in which the list of... (1 Reply)
Discussion started by: joaochambino
1 Replies
SCRIPT(1)						    BSD General Commands Manual 						 SCRIPT(1)

NAME
script -- make typescript of terminal session SYNOPSIS
script [-a] [-c COMMAND] [-e] [-f] [-q] [-t] [file] DESCRIPTION
Script makes a typescript of everything printed on your terminal. It is useful for students who need a hardcopy record of an interactive session as proof of an assignment, as the typescript file can be printed out later with lpr(1). If the argument file is given, script saves all dialogue in file. If no file name is given, the typescript is saved in the file typescript. Options: -a Append the output to file or typescript, retaining the prior contents. -c COMMAND Run the COMMAND rather than an interactive shell. This makes it easy for a script to capture the output of a program that behaves differently when its stdout is not a tty. -e Return the exit code of the child process. Uses the same format as bash termination on signal termination exit code is 128+n. -f Flush output after each write. This is nice for telecooperation: One person does `mkfifo foo; script -f foo' and another can super- vise real-time what is being done using `cat foo'. -q Be quiet. -t Output timing data to standard error. This data contains two fields, separated by a space. The first field indicates how much time elapsed since the previous output. The second field indicates how many characters were output this time. This information can be used to replay typescripts with realistic typing and output delays. The script ends when the forked shell exits (a control-D to exit the Bourne shell (sh(1)), and exit, logout or control-d (if ignoreeof is not set) for the C-shell, csh(1)). Certain interactive commands, such as vi(1), create garbage in the typescript file. Script works best with commands that do not manipulate the screen, the results are meant to emulate a hardcopy terminal. ENVIRONMENT
The following environment variable is utilized by script: SHELL If the variable SHELL exists, the shell forked by script will be that shell. If SHELL is not set, the Bourne shell is assumed. (Most shells set this variable automatically). SEE ALSO
csh(1) (for the history mechanism), scriptreplay(1). HISTORY
The script command appeared in 3.0BSD. BUGS
Script places everything in the log file, including linefeeds and backspaces. This is not what the naive user expects. AVAILABILITY
The script command is part of the util-linux package and is available from ftp://ftp.kernel.org/pub/linux/utils/util-linux/. Linux July 30, 2000 Linux
All times are GMT -4. The time now is 11:10 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy