Sponsored Content
Top Forums Shell Programming and Scripting How to clear $1 when dot-running a script. Post 302173536 by bakunin on Friday 7th of March 2008 03:38:50 AM
Old 03-07-2008
First off, I'd like to state for the record, that you should thank yourself instead of thanking me: you haven't made clear that this occurs only in AIX (to your knowledge) and among the many things i am incompetent in is reading minds. Furthermore it will become clear with the answer that i was correct moving the thread as it is indeed a shell-related problem, not a OS-related one. In fact it is a problem of understanding, not of software.

Further, and to clear up the confusion: This effect can probably be demonstrated in other implementations of the Korn Shell too, as it is no bug, but a feature. You execute a script IN THE CURRENT ENVIRONMENT and hence you can set any variable and it will stick to this value until being changed. The same is the case with system variables like $1, which you are setting here - in your current environment. You can query the value of $1 also in the current environment:

Code:
# echo $1

# . ./testme xxx
1=xxx
# echo $1
xxx

It may look a bit counter-intuitive, but: which reason would the shell have to change the value of "$1" as long as it isn't being changed?

After this explanation the solution how to clear the variable "$1":

Either provide an empty value to make it empty:
Code:
# . ./testme xxx
1=xxx
# echo $1
xxx
# . ./testme ""
1=
# . ./testme
1=

or use "shift" to rotate out $1:

Code:
# . ./testme xxx
1=xxx
# echo $1
xxx
# shift
# echo $1

# . ./testme
1=

One word about the implementation of bash: *this* in fact is a bug and the failure of the Linux pdksh to do the same as the AIX ksh should be regarded as sloppiness of implementation, not as feature.

bakunin
 

9 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Clear Case, Awk and script

Hello. I should have asked this awhile ago but here is my situation. My task is to generate LOC for different directories. I have a text file that has dates in this format (01-Aug-2006). My task is to read each line and compare it to a branch date. Depending on the date, it should generate a... (0 Replies)
Discussion started by: mastachef
0 Replies

2. Linux

SED/AWK Script to clear log file using timestamp?

I have a log file on our system which fills up with lines that have been timestamped, as follows.... 03/03/2008 10:56:06:815] (ERROR) balance: continuing session to genapp02 : 18500 03/03/2008 10:56:06:820] (ERROR) balance: continuing session to genapp02 : 18500 03/03/2008 10:56:07:003]... (2 Replies)
Discussion started by: davesimm
2 Replies

3. Solaris

Running from Shell Vs running from RC script

Hi, i have a script which need to do behave differently when run as a startup process from init.d/ rc2.d script and when run manually from shell. How do i distinguish whether my script is run by init process or by shell?? Will the command /proc/$$/psinfo | grep "myscript" work well???... (2 Replies)
Discussion started by: vickylife
2 Replies

4. SCO

Parameter passing to dot shell script

OS SCO Open Server 6.0 MP4 I am trying to change the value of a enviornment variable thru a script and want to pass a parameter on the commande line, If I hard code the value inside the script the script changes the enviornment variable . mytest where my test is MYVAR=$1 export MYVAR... (6 Replies)
Discussion started by: atish0
6 Replies

5. AIX

Help with clear printer queue script in AIX 5.3

Good day UNIX forum, could you help me with my clear printer queue script, i have problems with the consistency of this function, sometimes it works sometimes it doesn't. Thanks in advance } preRemovePrintQ(){ clear; echo; echo... (1 Reply)
Discussion started by: beware187
1 Replies

6. Shell Programming and Scripting

Need to exclude .NFSxxx files in clear old files batch script

I am new to Shell Scripting and need some help. The following batch job has been failing for me due to the .nfsxxx files in use. I need to know how to modify the following script to exclude the .nfsxxx files so this batch job will not fail on me. I have done lots of googling and keep coming back... (2 Replies)
Discussion started by: kimberlyg2007
2 Replies

7. Shell Programming and Scripting

Script will keep checking running status of another script and also restart called script at night

I am using blow script :-- #!/bin/bash FIND=$(ps -elf | grep "snmp_trap.sh" | grep -v grep) #check snmp_trap.sh is running or not if then # echo "process found" exit 0; else echo "process not found" exec /home/Ketan_r /snmp_trap.sh 2>&1 & disown -h ... (1 Reply)
Discussion started by: ketanraut
1 Replies

8. Shell Programming and Scripting

Why script is running sometimes and not running sometimes?

Hi, I have a script which does couple of database connection and run some SELECT queries to get some output in the file. I am surprised to see :eek: that when i run my script some times it gives the desired out put and sometimes it shows some error :confused: . Suppose if i execute it say... (3 Replies)
Discussion started by: Sharma331
3 Replies

9. HP-UX

Script to clear filesystem

Hi, I have created a script to clear up the /var filesystem once it reaches > 90%. This is part of the script : #!/bin/bash DIR = ./adm DIR2=./adm/sw DIR3 = ./spool/mqueue DIR4 = ./adm/syslog DIR5 = ./adm/sulog DIR6 = ./tmp F1 = ./tmp/dead.letter F2 = ./adm/wtmps file1 =... (5 Replies)
Discussion started by: anaigini45
5 Replies
uudemon(4)						     Kernel Interfaces Manual							uudemon(4)

NAME
uudemon.admin, uudemon.cleanu, uudemon.hour, uudemon.poll - Administrative shell scripts for polling remote systems, cleaning up spool directories, reporting status to the system administrator, and routine invocations of the uuxqt and uusched daemons SYNOPSIS
These shell scripts reside in the following directory: /usr/lib/uucp DESCRIPTION
All the scripts can be run from the command line or can be run automatically by the cron daemon. To automatically run the scripts, remove the comment character (#) from the beginning of the relevant line in the /var/spool/cron/crontabs/uucp file. This script reports status to the system administrator. It issues the uustat command to find out the status of uucp jobs. It mails the results to the uucp login ID. The script may be modified to send mail to any login ID such as the uucp administrative login ID (uucpa) or root. This script cleans up the /var/spool/uucp and /var/spool/uucppublic directories by running the uucleanup command. The uucleanup com- mand is run with the following parameters: -C7, -D7, X2, -o2, -W1. This script runs the uusched and uuxqt daemons in the background. This script polls the systems listed in the /usr/lib/uucp/Poll file. The uudemon.poll script should be scheduled before the uudemon.hour script. This allows uudemon.poll to create any command files before cron runs the uudemon.hour script. FILES
Contains the uudemon.admin, uudemon.cleanu, uudemon.hour and uudemon.poll files. Contains the uucp file. RELATED INFORMATION
Commands: cron(8), uucleanup(8), uusched(8), uuxqt(1) Files: /usr/lib/uucp delim off uudemon(4)
All times are GMT -4. The time now is 06:52 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy