Sponsored Content
Top Forums Shell Programming and Scripting Discussion: use "/usr/bin/env" or not Post 302973179 by drl on Sunday 15th of May 2016 06:32:44 PM
Old 05-15-2016
Hi.

Of the few discussions I have read, I like the one at shell script - Why is it better to use "#!/usr/bin/env NAME" instead of "#!/path/to/NAME" as my shebang? - Unix & Linux Stack Exchange

The main response leans towards the view of Aia and perhaps that of Don Cragun, mentioning the drawbacks. The follow-on responses there (including some from familiar names) illustrate that *nix provides the choice.

Whichever one prefers depends on the goal. As I have said, for me it's portability. I don't have similarly named codes on my systems. I don't have my ~/bin before the system directories. My PATH and root's PATH are the same respectively as possible on systems (Solaris an exception for /opt).

When I have a code that is a work-alike, either I name it differently, or I call it my-code, like my-tac, or my-uniq (too-limited a design for uniq, simple but not flexible enough for me). Currently I have about 40 of those, but for solutions that I provide to others I'm more likely to use standard commands.

The Linux distribution that I use most frequently is GNU/Debian. They seem to often use a scheme for numbering similar interpretors. So python -> python2.7, python3 -> python3.4:
Code:
$ version =o python python2.7
OS, ker|rel, machine: Linux, 3.16.0-4-amd64, x86_64
Distribution        : Debian 8.4 (jessie) 
Python 2.7.9
python2.7 Python 2.7.9

Don's comments reminds me of discussions I had with Sun. I really liked their hardware, and their man pages were very good because they often included examples, but otherwise Sun seemed very resistant to incorporate new features that users wanted or needed. That has changed a bit recently. One can use GNU utilities on (recent) Solaris systems:
Code:
$ version =o patch
OS, ker|rel, machine: SunOS, 5.11, i86pc
Distribution        : Solaris 11.3 X86
patch GNU patch 2.7.5

I'm not so much interested in the same as I am in the best.

Thanks to everyone for their comments ... cheers, drl
 

10 More Discussions You Might Find Interesting

1. Programming

Differece between "env" and "set" command

Hi, Please clarify what is the difference between "env" and "set" command. I guess set will display the system variables and user defined variables. Thanks Sweta (1 Reply)
Discussion started by: sweta
1 Replies

2. UNIX for Dummies Questions & Answers

Explain the line "mn_code=`env|grep "..mn"|awk -F"=" '{print $2}'`"

Hi Friends, Can any of you explain me about the below line of code? mn_code=`env|grep "..mn"|awk -F"=" '{print $2}'` Im not able to understand, what exactly it is doing :confused: Any help would be useful for me. Lokesha (4 Replies)
Discussion started by: Lokesha
4 Replies

3. UNIX for Dummies Questions & Answers

#!/bin/sh script fails at StringA | tr "[x]" "[y]"

I need to take a string (stringA) check it for spaces and replace any spaces found with an equal (=) sign. This is not working. There are spaces between each component: $StringA | tr "" "" The error returned is: test: Specify a parameter with this command Can you help? (3 Replies)
Discussion started by: by_tg
3 Replies

4. Shell Programming and Scripting

What does "#@$-s /usr/bin/ksh -x " mean?

I am using ksh.. Whenever we write a shell script the first statement would be #! /bin/ksh. But instead of that I came to find "#@$-q large" in the first line and"#@$-s /usr/bin/ksh -x " in the second line. what does it mean? Give your comments..... Thanks sabeer (4 Replies)
Discussion started by: sabeeralict
4 Replies

5. Solaris

difference between "root" and "usr" packages

Hi, could someone pls enlighten me on the difference between the "root" package and "usr" package? Like in this example: pkginfo -l SUNWGtku | grep -i desc DESC: GTK - The GIMP Toolkit (Usr) and pkginfo -l SUNWGtkr | grep -i desc DESC: GTK - The GIMP Toolkit (Root)... (6 Replies)
Discussion started by: masloff
6 Replies

6. Solaris

Execution problem with "/usr/dt/bin/sdtdbcache

On a SunOS Solaris 5.5.1 workstation, the /usr/dt/bin/sdtdbcache –init command lasts more than 20 minutes. This command is executed by the /usr/dt/bin/Xsession script during an user connection. Please refrain from using subjects like "HELP ME!..." to get more/faster attention and also please do... (1 Reply)
Discussion started by: ricadom
1 Replies

7. UNIX for Dummies Questions & Answers

Difference between "/bin/bash" & "/bin/sh"

what if the difference between #!/bin/sh and #!/bin/bash I wrote a script with the second heading now when i change my heading to the first one ...the script is not executing well....im not getting the required output....any solution to this problem...or do i have to start the... (3 Replies)
Discussion started by: xerox
3 Replies

8. Solaris

The slices "usr", "opt", "tmp" disappeared!!! Help please.

The system don't boot. on the screen appears following: press enter to maintenance (or type CTRL-D to continue)...I checked with format command. ... the slices "0-root","1-swap","2-backup" exist. ...the slises "3-var","6-usr" -unassigned. :( (16 Replies)
Discussion started by: wolfgang
16 Replies

9. Shell Programming and Scripting

If cmd in in "A/user/bin A/bin A/user/sbin" but not "B/user/bin B/bin B/user/sbin" directory print t

there are two directories A and B if cmd in in "A/user/bin A/bin A/user/sbin" but not "B/user/bin B/bin B/user/sbin" directory print them (1 Reply)
Discussion started by: yanglei_fage
1 Replies

10. Shell Programming and Scripting

Mindboggling difference between using "tee" and "/usr/bin/tee" in bash

I'm on Ubuntu 14.04 and I manually updated my coreutils so that "tee" is now on version 8.27 I was running a script using bash where there is some write to pipe error at some point causing the tee command to exit abruptly while the script continues to run. The newer version of tee seems to prevent... (2 Replies)
Discussion started by: stompadon
2 Replies
DH_PYCENTRAL(1) 						     Debhelper							   DH_PYCENTRAL(1)

NAME
dh_pycentral - use the python-central framework to handle Python modules and extensions SYNOPSIS
dh_pycentral [debhelper options] [-n] [-Xitem] [-V version] [module dirs ...] DESCRIPTION
dh_pycentral is a debhelper program that will scan your package, detect public Python modules and move them in /usr/share/pycentral so that python-central can byte-compile those for all supported Python versions. Extensions are kept into the original installation location. Moving the files to the pycentral location and adding symbolic links to /usr/lib/pythonX.Y/*-packages can be done by setting the environment varibale DH_PYCENTRAL to a string containing the string include-links. Moving the files to the pycentral location can be disabled by setting the environment varibale DH_PYCENTRAL to a string containing the string nomove. The functionality to shorten the time of unavailabilty of files during unpack and configure has been removed (symlinking files in the preinst and not removing the symlinked files on upgrade) in version 0.6.9. You must have filled the XS-Python-Version header to indicate the set of python versions that are going to be supported. dh_pycentral expects the XB-Python-Version for each binary package it is supposed to work on. dh_pycentral will also generate substitution variables: the ${python:Provides} variable will contain versioned provides of the package (if the package's name starts with "python-"). A python-foo package could provide "python2.3-foo" and "python2.4-foo" at the same time. Python extensions have to provide those whereas it's only option for pure python modules. The ${python:Versions} variable should be used to provide the required XB-Python-Version field listing the python versions supported by the package. OPTIONS
module dirs If your package installs python modules in non-standard directories, you can make dh_pycentral check those directories by passing their names on the command line. By default, it will check /usr/lib/$PACKAGE, /usr/share/$PACKAGE, /usr/lib/games/$PACKAGE, /usr/share/games/$PACKAGE, /usr/lib/python?.?/site-packages and /usr/lib/python?.?/dist-packages. Note: only /usr/lib/python?.?/site-packages and the extra names on the command line are searched for binary (.so) modules. -V version If the .py files your package ships are meant to be used by a specific pythonX.Y version, you can use this option to specify the desired version, such as 2.3. Do not use if you ship modules in /usr/lib/site-python. With the new policy, this option is mostly deprecated. Use the XS-Python-Field to indicate that you're using a specific python version. -n, --noscripts Do not modify postinst/postrm scripts. -Xitem, --exclude=item Exclude files that contain "item" anywhere in their filename from being taken into account to generate the python dependency. You may use this option multiple times to build up a list of things to exclude. CONFORMS TO
Python policy, version 0.4.1 (2006-06-20) SEE ALSO
debhelper(7) This program is a part of python-central but is made to work with debhelper. AUTHORS
Raphael Hertzog <hertzog@debian.org> Also includes bits of the old dh_python written by Josselin Mouette <joss@debian.org> who used many ideas from Brendan O'Dea <bod@debian.org>. 2011-04-14 DH_PYCENTRAL(1)
All times are GMT -4. The time now is 06:55 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy