Visit Our UNIX and Linux User Community


shell variables advanced


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting shell variables advanced
# 1  
Old 07-28-2009
shell variables advanced

Hi all, i have more questions but its all about variables so lets begin

1st, is possible to list all variables ?
Command env display only shell variables, but what if i declared another variable? Command set display more variables but not defined by me.

2nd, what difference is between set and env ?

3rd, lets say i declared variable which contains whitespaces, or i have variable which contains whitespaces for example IFS. When i type echo $IFS i see nothing, so i dont know if is declared or if contain white spaces.
Is possible to write white spaces in C format (\n \r \t ...) ?

4th what is difference between sourcing and exporting variable ?




PS: i saw declaration of IFS in set command (IFS=$' \t\n')
# 2  
Old 07-28-2009
Quote:
is possible to list all variables ?
What do you mean by all variables?

Quote:
Command env display only shell variables
Incorrect. It writes the current environment to standard out.

Quote:
what difference is between set and env ?
set is a shell built-in to set and clear shell options. env writes the current environment to standard out.

Quote:
Is possible to write white spaces in C format (\n \r \t ...) ?
Yes and no. Depends on your shell. What shell are you using?
# 3  
Old 07-28-2009
Quote:
Originally Posted by wakatana
Hi all, i have more questions but its all about variables so lets begin

1st, is possible to list all variables ?
Command env display only shell variables, but what if i declared another variable? Command set display more variables but not defined by me.

2nd, what difference is between set and env ?

3rd, lets say i declared variable which contains whitespaces, or i have variable which contains whitespaces for example IFS. When i type echo $IFS i see nothing, so i dont know if is declared or if contain white spaces.
Is possible to write white spaces in C format (\n \r \t ...) ?

4th what is difference between sourcing and exporting variable ?
PS: i saw declaration of IFS in set command (IFS=$' \t\n')
1. "set" lists all variables. Double check, your variable must be there.
Try this:
Code:
 
aassdd="blabla" (or set aassdd="blabla")
echo $aassdd
set | grep aassdd

2. "env" list all environment variables.

3. For variable with space use quotes.
Code:
 
    qq="aaa                  vvv"
    echo $qq       # output will be ==> aaa vvv
    echo "$qq"     # output will be ==> aaa                  vvv

4. For $IFS do the same as before:
Code:
 
    set | grep "$IFS"

# 4  
Old 07-29-2009
Quote:
Originally Posted by edidataguy
4. For $IFS do the same as before:
Code:
 
    set | grep "$IFS"


Why use grep? It may give a lot more than the value of IFS:

Code:
$ set | grep IFS
DIFS=$' \t\n'
IFS=$' \t\n'
oldIFS=$' \t\n'
    oldIFS=$IFS;
    IFS=" -./";
    IFS=$oldIFS;
    IFS=:;
    oldIFS=$IFS;
    IFS=":";
    IFS=$oldIFS;
            printf "%s\n" "$IFS" "$OLD_IFS" 1>&2
            oldIFS
            newIFS
    local IFS=.;
    local IFS=.;
        IFS=$NL;
    IFS=" $TAB$NL";
newIFS () 
    if [ -n "${IFS+X}" ]; then
        OLD_IFS=${OLD_IFS}SET:$IFS;
        IFS=$1;
        OLD_IFS=${OLD_IFS}UNSET;
oldIFS () 
    case $OLD_IFS in 
            unset IFS
            IFS=${OLD_IFS##*SET:};
            OLD_IFS=${OLD_IFS%SET:*}
        IFS=: eval "printf \"%s\n\" \$PATH";

All you need is:

Code:
printf 'IFS=%s\n" "$IFS"

This User Gave Thanks to cfajohnson For This Post:
# 5  
Old 07-29-2009
Thanks for reply i am trying to do for loop in bash script throught *.mp3 files. Problem is that the mp3 files contains white spaces so i found this advice
HTML Code:
https://www.unix.com/shell-programming-scripting/42839-preventing-whitespace-delimiter-loop-bash-sh.html
in short: back up IFS then set IFS to IFS=$’\n’, but how can i print current value of IFS ? echo $IFS gives me nothing. Thanks
# 6  
Old 07-29-2009
Quote:
Originally Posted by edidataguy
1. "set" lists all variables. Double check, your variable must be there.
Try this:
Code:
 
aassdd="blabla" (or set aassdd="blabla")
echo $aassdd
set | grep aassdd

2. "env" list all environment variables.

3. For variable with space use quotes.
Code:
 
    qq="aaa                  vvv"
    echo $qq       # output will be ==> aaa vvv
    echo "$qq"     # output will be ==> aaa                  vvv

4. For $IFS do the same as before:
Code:
 
    set | grep "$IFS"

Sorry an error. It should read as:
Code:
set | grep "^IFS"


Last edited by edidataguy; 07-29-2009 at 03:12 PM..
# 7  
Old 07-29-2009
Quote:
Originally Posted by wakatana
1st, is possible to list all variables ?
In bash, at least, set with no parameters displays all environment variables and shell variables, even arrays.

Previous Thread | Next Thread
Test Your Knowledge in Computers #215
Difficulty: Easy
Cisco IOS has a monolithic architecture.
True or False?

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

How to write config shell script to pass variables in master shell script?

Dear Unix gurus, We have a config shell script file which has 30 variables which needs to be passed to master unix shell script that invokes oracle database sessions. So those 30 variables need to go through the database sessions (They are inputs) via a shell script. one of the variable name... (1 Reply)
Discussion started by: dba1981
1 Replies

2. UNIX for Dummies Questions & Answers

How to write Config shell script to pass variables in master shell script?

Dear Unix gurus, We have a config shell script file which has 30 variables which needs to be passed to master unix shell script that invokes oracle database sessions. So those 30 variables need to go through the database sessions (They are inputs) via a shell script. one of the variable name... (1 Reply)
Discussion started by: dba1981
1 Replies

3. Shell Programming and Scripting

awk - take variables out to shell

Hi, How could we take the value of awk variables out to shell? I know the following methods 1. awk '{print $1}' < file | read a echo $a 2. a=`awk '{print $1}' < file` echo $a Please let me know if there are any other methods. Also, how do we take more than 1 variable value... (4 Replies)
Discussion started by: Thumban
4 Replies

4. Homework & Coursework Questions

Trouble with Advanced Shell Programming

Use and complete the template provided. The entire template must be completed. If you don't, your post may be deleted! 1. The problem statement, all variables and given/known data: I am working on a hands on project. We are creating a script for a corporate phone list. The project I am... (2 Replies)
Discussion started by: SarahBelle7858
2 Replies

5. Shell Programming and Scripting

Shell advanced syntax?

I am not an expert of shell scripting, but I can do some simple things. Now, I read a script written by others and I need some help from the experts of this forum. Please help me to understand what is going on in this cycle: if ; then ] && \ export... (25 Replies)
Discussion started by: alt
25 Replies

6. Shell Programming and Scripting

Advanced error handling in shell scripts

Hi all I've got a question regarding error handling in shell scripts. My background is mainly object oriented programming languages, but for a year or so I've been doing more and more (bash) shell scripting (which I quite enjoy by the way). To handle errors in my scripts I... (3 Replies)
Discussion started by: script_man
3 Replies

7. Shell Programming and Scripting

$0 shell variables

Would appreciate if someone can explain the ${0##*/} line. What does it do? I am aware that $0 is the script name, $# is number of arguments passed in, $* is all the arguments. With the curly brackets {} added in, what's the eventual effect? Does ${0##*/} actually equals $0$#$*? (something like... (3 Replies)
Discussion started by: new2ss
3 Replies

8. Post Here to Contact Site Administrators and Moderators

Where can I download the VTC - Unix Shell Scripting Advanced complete video

Where can I download the VTC - Unix Shell Scripting Advanced complete video. I don't know in which thread I should post this question.Plz help me out, or just tell me the link in the reply to this post. Thanks in advance. (0 Replies)
Discussion started by: villain41
0 Replies

9. Shell Programming and Scripting

variables in shell

hi, i'm new in shell scripting and i'm working on bash on solaris 5.9 after try many stuff with unexpected results, i wonder: it is not posible in bash, to use a variable that was created inside a loop, out of it? i mean, for instance: cat mytext | \ while read text do viko=$text... (2 Replies)
Discussion started by: viko
2 Replies

10. Shell Programming and Scripting

Using shell variables In awk

Oh its not my day for syntax... cat gzipsize.txt | awk '{print "echo",$1,$2} > master.txt I have read a lot about the awk -v but haven't been able to get it to work. I have a variable in my script and I'm looking just to push it into the awk after the $2 (or anywhere would do)!!! Every... (11 Replies)
Discussion started by: nortypig
11 Replies

Featured Tech Videos