Linux - Newbie This Linux forum is for members that are new to Linux.
Just starting out and have a question?
If it is not in the man pages or the how-to's this is the place! |
Notices |
Welcome to LinuxQuestions.org, a friendly and active Linux Community.
You are currently viewing LQ as a guest. By joining our community you will have the ability to post topics, receive our newsletter, use the advanced search, subscribe to threads and access many other special features. Registration is quick, simple and absolutely free. Join our community today!
Note that registered members see fewer ads, and ContentLink is completely disabled once you log in.
Are you new to LinuxQuestions.org? Visit the following links:
Site Howto |
Site FAQ |
Sitemap |
Register Now
If you have any problems with the registration process or your account login, please contact us. If you need to reset your password, click here.
Having a problem logging in? Please visit this page to clear all LQ-related cookies.
Get a virtual cloud desktop with the Linux distro that you want in less than five minutes with Shells! With over 10 pre-installed distros to choose from, the worry-free installation life is here! Whether you are a digital nomad or just looking for flexibility, Shells can put your Linux machine on the device that you want to use.
Exclusive for LQ members, get up to 45% off per month. Click here for more info.
|
 |
11-12-2007, 04:22 AM
|
#1
|
Member
Registered: Oct 2007
Posts: 30
Rep:
|
Confused over a BASH command
I've done a fair amount of C and java programming on platforms other than linux, so I thought I'd have no trouble with variables in BASH.
However I've been confused by seeing this command:
Code:
CC="gcc -B/usr/bin/" ../binutils-2.17/configure \
--prefix=/tools --disable-nls --disable-werror
To my untrained eye this should just assign a string to the variable CC. What it actually does is configure binutils.
Is anyone able to give me a little detail on why this carries out a command? Anything about what this is actually doing would be helpful.
Thanks for your time.
|
|
|
11-12-2007, 04:30 AM
|
#2
|
LQ Veteran
Registered: Sep 2003
Posts: 10,532
|
Hi,
There are 2 commands present:
1) CC="gcc -B/usr/bin/", This forces gcc to prefer the linker from the host in /usr/bin. This is necessary on some hosts where the new ld built here is not compatible with the host's gcc. (boldly copied from the LFS 6.3, 5.3. Binutils-2.17 - Pass 1 page....).
and
2) ../binutils-2.17/configure --prefix=/tools --disable-nls --disable-werror, which is the configure command (with 3 options).
Hope this helps.
|
|
|
11-12-2007, 05:37 AM
|
#3
|
LQ Guru
Registered: Sep 2003
Location: Bologna
Distribution: CentOS 6.5 OpenSuSE 12.3
Posts: 10,509
|
Quote:
Originally Posted by Couling
Code:
CC="gcc -B/usr/bin/" ../binutils-2.17/configure \
--prefix=/tools --disable-nls --disable-werror
To my untrained eye this should just assign a string to the variable CC. What it actually does is configure binutils.
|
Here the syntax is the same as the env command
Code:
env CC="gcc -B/usr/bin/" ../binutils-2.17/configure \
--prefix=/tools --disable-nls --disable-werror
you can omit env and the result is the same: change or create an enviromental variable which will be assigned for the duration of the script or command. See man env for details.
|
|
|
11-12-2007, 05:39 AM
|
#4
|
Member
Registered: Oct 2007
Posts: 30
Original Poster
Rep:
|
That makes a little more sense.
How does the syntax indicate 2 commands?
Is it the fact that "gcc -B/usr/bin/" is quoted or something else?
|
|
|
11-12-2007, 05:44 AM
|
#5
|
Member
Registered: Oct 2007
Posts: 30
Original Poster
Rep:
|
Quote:
Originally Posted by colucix
Here the syntax is the same as the env command
|
Ah.
The equivalent would have been to use "export CC=...", followed by the configure command?
although this would have perminantly changed CC (atleast until I closed the command prompt)
Last edited by Couling; 11-12-2007 at 05:46 AM.
Reason: re-writeing it clearly
|
|
|
11-12-2007, 05:51 AM
|
#6
|
LQ Guru
Registered: Sep 2003
Location: Bologna
Distribution: CentOS 6.5 OpenSuSE 12.3
Posts: 10,509
|
Quote:
Originally Posted by Couling
The equivalent would have been to use "export CC=...", followed by the configure command?
|
No. Not export, but env. You are right, if using export you permanently set an environment variable until you close the shell or issue an unset command. Instead, using env or the syntax
Code:
NAME=VALUE [ COMMAND [ARG] ... ]
you can set the value of NAME just for the execution of the command.
|
|
|
11-12-2007, 06:08 AM
|
#7
|
LQ Veteran
Registered: Sep 2003
Posts: 10,532
|
Hi,
You've been answering your own questions
Just to confirm: you can set the value of NAME just for the execution of the command. is correct.
I'm not sure if you are trying to set up LFS, but take a look at the chapter that follows binutils ( GCC-4.1.2 - Pass 1), it shows that CC='.....' is set again.
|
|
|
11-12-2007, 08:18 AM
|
#8
|
Moderator
Registered: Jan 2005
Location: Central Florida 20 minutes from Disney World
Distribution: SlackwareŽ
Posts: 13,991
|
Quote:
Originally Posted by Couling
I've done a fair amount of C and java programming on platforms other than linux, so I thought I'd have no trouble with variables in BASH.
However I've been confused by seeing this command:
Code:
CC="gcc -B/usr/bin/" ../binutils-2.17/configure \
--prefix=/tools --disable-nls --disable-werror
To my untrained eye this should just assign a string to the variable CC. What it actually does is configure binutils.
Is anyone able to give me a little detail on why this carries out a command? Anything about what this is actually doing would be helpful.
Thanks for your time.
|
Hi,
Several posts have given you some good advice. I would suggest that you look at the Advanced Bash-Scripting Guide or Learning the Shell. You could also look at the Tutorials section of ' Slackware-Links' for other useful links.
|
|
|
All times are GMT -5. The time now is 06:05 AM.
|
LinuxQuestions.org is looking for people interested in writing
Editorials, Articles, Reviews, and more. If you'd like to contribute
content, let us know.
|
Latest Threads
LQ News
|
|