Yes, and as you have already received the solution i wil concentrate on explaining the reason:
When you invoke a process with some arguments these arguments become part of the "process environment". Inside a script you can then use special variables ("$@", "$*", "$1", "$2", ...) to pull these arguments out of the environment or get ("$#") the number of parameters passed.
But every time you invoke a shell function inside a script this function gets its own environment of sorts and all the special variables "$1", "$2", etc. and "$#" describe what is passed as argument to the function instead of what is passed to the main script. Look at the following sample script:
How do I check if the argument passed to a script is an integer?
I am writting a script that will take to integers and want to be able to check before I go on.
I am using bourne shell.
Thanks in advance (13 Replies)
Can someone please help me with this SHELL script?
I need to create a script that gets a positive number n as an argument. The script must calculate the factorial of its argument. In other words, it must calculate n!=1x2x3x...xn. Note that 0!=1.
Here is a start but I have no clue how to... (3 Replies)
I have the below script in file read_file.ksh if ] || ]
then
echo "Required one input file"
echo "Enter a file to get char count:"
read $FILE_NAME
if ]
then
echo "valid file"
else
echo "Not a valid file."
fi
When run as read_file.ksh detail.csv or... (9 Replies)
i want to write a shell script function that will ftp the files passed in the command line . i have written a shell script for ftp but how will it do for all files passed in command line argument ,
i am passing 4 files as argument
./ftp.sh file1 file2 file3 file4
code written by me... (5 Replies)
Hi I am new in shell,
I am trying to create a small script that can do exit if a script is executed when argument not 2
#!/bin/sh
if ; then
echo greater
exit 1;
elif ; then
echo less
exit 1;
fiit keeps returning me
whatever number of argument I... (1 Reply)
I want to make a script which takes the number of argument, add those argument and gives output to the user, but I am not getting through...
Script that i am using is below :
#!/bin/bash
sum=0
for i in $@
do
sum=$sum+$1
echo $sum
shift
done
I am executing the script as... (3 Replies)
I want to make a script that check for the argument passed to it and generates an error in case any character/string argument passed to it.
I am using below code, but its not working. can anyone help.
#!/bin/bash
if ]; then
echo 'An integer argument is passed to the script hence... (3 Replies)
I have a script.
#!/bin/sh
cur_$1_modify_time=Hello
echo "cur_$1_modify_time"
When I run like
sh /root/script1 jj
I expect value "Hello" being assigned to variable "cur_jj_modify_time" and output being "Hello" ie echoing $cur_jj_modify_time
But the output comes as
# sh... (3 Replies)
Hi All,
I have a script which intends to create as many variables at runtime, as the number of parameters passed to it. The script needs to save these parameter values in the variables created and print them
abc.sh
----------
export Numbr_Parms=$#
export a=1
while
do
export... (3 Replies)
Discussion started by: dev.devil.1983
3 Replies
LEARN ABOUT PHP
unset
UNSET(3) 1 UNSET(3)unset - Unset a given variableSYNOPSIS
void unset (mixed $var, [mixed $...])
DESCRIPTION unset(3) destroys the specified variables.
The behavior of unset(3) inside of a function can vary depending on what type of variable you are attempting to destroy.
If a globalized variable is unset(3) inside of a function, only the local variable is destroyed. The variable in the calling environment
will retain the same value as before unset(3) was called.
<?php
function destroy_foo()
{
global $foo;
unset($foo);
}
$foo = 'bar';
destroy_foo();
echo $foo;
?>
The above example will output:
bar
To unset(3) a global variable inside of a function, then use the $GLOBALS array to do so:
<?php
function foo()
{
unset($GLOBALS['bar']);
}
$bar = "something";
foo();
?>
If a variable that is PASSED BY REFERENCE is unset(3) inside of a function, only the local variable is destroyed. The variable in the
calling environment will retain the same value as before unset(3) was called.
<?php
function foo(&$bar)
{
unset($bar);
$bar = "blah";
}
$bar = 'something';
echo "$bar
";
foo($bar);
echo "$bar
";
?>
The above example will output:
something
something
If a static variable is unset(3) inside of a function, unset(3) destroys the variable only in the context of the rest of a function. Fol-
lowing calls will restore the previous value of a variable.
<?php
function foo()
{
static $bar;
$bar++;
echo "Before unset: $bar, ";
unset($bar);
$bar = 23;
echo "after unset: $bar
";
}
foo();
foo();
foo();
?>
The above example will output:
Before unset: 1, after unset: 23
Before unset: 2, after unset: 23
Before unset: 3, after unset: 23
PARAMETERS
o $var
- The variable to be unset.
o $...
- Another variable ...
RETURN VALUES
No value is returned.
EXAMPLES
Example #1
unset(3) example
<?php
// destroy a single variable
unset($foo);
// destroy a single element of an array
unset($bar['quux']);
// destroy more than one variable
unset($foo1, $foo2, $foo3);
?>
Example #2
Using (unset) casting
(unset) casting is often confused with the unset(3) function. (unset) casting serves only as a NULL-type cast, for completeness. It
does not alter the variable it's casting.
<?php
$name = 'Felipe';
var_dump((unset) $name);
var_dump($name);
?>
The above example will output:
NULL
string(6) "Felipe"
NOTES
Note
Because this is a language construct and not a function, it cannot be called using variable functions.
Note
It is possible to unset even object properties visible in current context.
Note
It is not possible to unset $this inside an object method since PHP 5.
Note
When using unset(3) on inaccessible object properties, the __unset() overloading method will be called, if declared.
SEE ALSO isset(3), empty(3), __unset(), array_splice(3).
PHP Documentation Group UNSET(3)