Set, setenv or export? Confused between three options


 
Thread Tools Search this Thread
Operating Systems HP-UX Set, setenv or export? Confused between three options
# 1  
Old 04-24-2017
Set, setenv or export? Confused between three options

Hi Experts,

Need your help in understanding the commands to setup the environment variables in hp-ux.

Beleive need to use either set,setenv or export.

I am confused between above three options, when to use which option?

On command line, I have tried both set and setenv but couldn't able to set the environment variables. However with export it was working fine.
# 2  
Old 04-24-2017
With standard shell or compatible shell (/etc/passwd has /bin/sh or /bin/ksh or /bin/bash or /bin/zsh) it uses
Code:
var=value

for a shell-internal variable. And
Code:
export var

to promote it to environment. Environment is inherited by the commands that the shell invokes.
The standard shell and compatibles process such commands in $HOME/.profileat a login.

If the shell in /etc/passwd is /bin/csh or /bin/tcsh then the syntax is different:
Code:
set var=value

for shell-internal, and
Code:
setenv var=value

for environment. There is some confusion if you do both with the same variable. By convention you should do
Code:
set var=value
setenv VAR=value

I.e. lowercase of internal variables and uppercase for environment variables.
The csh and tcsh process such commands in $HOME/.loginat a login.

Usually the SHELL environment variable is set from the one in /etc/passwd:
Code:
echo $SHELL


Last edited by vbe; 04-25-2017 at 04:08 AM.. Reason: typo
# 3  
Old 04-25-2017
You did not say what version of HP-UX you are working on...
Till 11.23 ( after I dont know...) the default user shell was ksh , so you would use either .profile or .kshrc in your home directory, for root user its a little different...
I will add to previous post that you can in .kshrc and even in .profile now ( since 11.00 ? ) use also this syntax:
Code:
export VAR=value

# 4  
Old 04-25-2017
A correction: ksh does not take .kshrc. It takes an environment variable ENV.
You can of course put the following into .profile
Code:
#ksh takes this startup file:
ENV=$HOME/.kshrc; export ENV

This User Gave Thanks to MadeInGermany For This Post:
# 5  
Old 04-25-2017
Thanks for the correcting me, was so obvious I zapped the magic line you need in .profile ...
There is a good reason to use a .kshrc if you use/have heavy customisation.:
To be sure no one has a corrupt environment when upgrading/patching OS if a new .profile is provided in the upgrade, it will be used as default for all users, thus avoiding extra most probable useless calls to internal support team... and as MadeInGermany flagged, the only thing we check here is that the magic line is present , if not will be added to the default...

Things get more complicated when using X server on PC with ssh and have an heterogenous environment with many flavours of UX/linux...
# 6  
Old 04-25-2017
Quote:
Originally Posted by MadeInGermany
A correction: ksh does not take .kshrc. It takes an environment variable ENV.
You can of course put the following into .profile
Code:
#ksh takes this startup file:
ENV=$HOME/.kshrc; export ENV

If ENV is found in the environment when an interactive ksh is invoked, then parameter expansion, command substitution, and arithmetic substitution are performed on the value of $ENV to generate the pathname of a script that will be executed before the first prompt is issued. If ENV is not found in the environment when an interactive ksh is invoked and there is a file named .kshrc in your login directory, that file will be executed before the first prompt is issued.

Depending on how ksh is configured on your system, it may also look for /etc/ksh/.kshrc. On systems that are configured to use this file, you can skip executing it by setting ENV to a string starting with /./ or ././ (such as /.$HOME/.kshrc to execute only $HOME/.kshrc or /./dev/null to avoid executing either of those files).
# 7  
Old 04-25-2017
Hello,

Per our forum rules, all threads must have a descriptive subject text. For example, do not post questions with subjects like "Help Me!", "Urgent!!" or "Doubt". Post subjects like "Execution Problems with Cron" or "Help with Backup Shell Script".

The reason for this is that nearly 95% of all visitors to this site come here because they are referred by a search engine. In order for future searches on your post (with answers) to work well, the subject field must be something useful and related to the problem!

In addition, current forum users who are kind enough to answer questions should be able to understand the essence of your query at first glance.

So, as a benefit and courtesy to current and future knowledge seekers, please be careful with your subject text. You might receive a forum infraction if you don't pay attention to this.

Thank you.

The UNIX and Linux Forums
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Solaris

export vs env vs set commands

Hi I'm trying to understand variable scopes in solaris10. It is said that to display env variables we use 3 commands : - env - set - export What is the difference between them ? thx for help. ---------- Post updated at 11:00 AM ---------- Previous update was at 10:50 AM ---------- ... (2 Replies)
Discussion started by: presul
2 Replies

2. UNIX for Advanced & Expert Users

Vi set options

Does know where I can find what ALL of the set options do in vi? I can't find it anywhere in vi's man pages or help files. I know about :set all but a lot of the options I have no clue what they do. (3 Replies)
Discussion started by: cokedude
3 Replies

3. Shell Programming and Scripting

How to check if export DISPLAY is set or not?

Hi All, I use "export DISPLAY=same_host:0.0" to set my export DISPLAY and it is working fine for me.. Problem here is I have developed a script for which i should run export DISPLAY prior to running my script.... so my script should check whether export DISPLAY is set or not.. if... (6 Replies)
Discussion started by: smarty86
6 Replies

4. UNIX for Dummies Questions & Answers

Why does set also change setenv variables?

I thought that set and setenv was easy enough to understand until I started experimenting. I noticed the same problem in a previous thread, so I will use it as an example. set command gave the following output: argv () cwd /homes/e/ee325328/assignment.2 home /homes/e/ee325328 path ( a... (2 Replies)
Discussion started by: benwj
2 Replies

5. Shell Programming and Scripting

use of set, export and typeset

what is the difference in usage of set, export, typeset while declaring a value to a variable can any one help thanks (0 Replies)
Discussion started by: trichyselva
0 Replies

6. UNIX for Dummies Questions & Answers

difference between EXPORT and setenv

Hi, Is there any difference between setting an environment variable by EXPORT and by setenv? (3 Replies)
Discussion started by: dexkid
3 Replies

7. UNIX for Dummies Questions & Answers

difference between set and export

Hi, can anybody tell me what is the difference between set and export in unix. -Ashish (1 Reply)
Discussion started by: shriashishpatil
1 Replies

8. UNIX for Dummies Questions & Answers

Difference between SET and SETENV

I never undestood exactly what's the difference between the SET and SETENV commands. One sets variables visible to all users and the other (SETENV) only to the specific user environment ? Thanks in advance, BraZil - thE heLL iS HEre :mad: !!! (2 Replies)
Discussion started by: 435 Gavea
2 Replies

9. Shell Programming and Scripting

How do I set permanent setenv !!!

Hello, I just want to know ow I can set permanent pathes or whatever using setenv command. I'm using c shell . regards, me (1 Reply)
Discussion started by: geoquest
1 Replies

10. UNIX for Dummies Questions & Answers

set, setenv

Well first of all I am a real Unix newbie. I am taking a course on it in University. I kind of understand set and setenv but, I think it si something that I should really understand. So I thought that I would try a forum out and see how good you guys really are. The question: Execute the... (1 Reply)
Discussion started by: w6u6f
1 Replies
Login or Register to Ask a Question