Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • SEARCH
  • Home
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 8710755
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: June 13, 20262026-06-13T04:42:21+00:00 2026-06-13T04:42:21+00:00

Is it considered good practice, when writing sh scripts, to unset all previously defined

  • 0

Is it considered good practice, when writing sh scripts, to unset all previously defined global variables at the end of the script?

If for example, I execute my script myscript using the . (source) builtin, like this

. myscript

after executing the script the shell is poluted with the variables defined in the script. This seems really bad (especially if used by other people).

If I could, I would get rid of globals in sh (or bash) altogether but more often then not they are the least worst solution :-).

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-06-13T04:42:22+00:00Added an answer on June 13, 2026 at 4:42 am

    This isn’t really executing the script. It is sourcing it, which makes the shell execute each command inside the script. If you want to execute the script, you would do this:

    ./myscript
    

    And in that case, none of the environment variables that are set inside the script would have an effect on your shell.

    If you really need to source the script, so that it can do things like set environment variables or change your current directory, then you can isolate the variables inside a sub-shell using parentheses:

    (
      a=7
      echo $a
    )
    # The change in a doesn't get to here
    

    If you were to unset the variables you use, you would have the opposite problem. If a variable with the same name had been set by the user, then you would end up destroying it.

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

If I were writing the below method (for example) is it considered good practice
Is it considered 'good practice' to re-use objects in c#. For example:       Say you
Is it to be considered good practice to reuse RFC HTTP Status codes like
In Java classes is it considered good or bad practice to access member fields
Just wondering if the following is considered to be good programming practice or not?
What is considered good practice for querying entites from a database using a simple
Is this considered good programming practice in C++: try { // some code }
Is it considered good practice to put any type of business logic in Enums?
Currently, I only use stored procedures, is this considered good practice or bad? I
Is it considered 'good practice' to stop JavaScript event propagation - does it benefit

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.