Visit Our UNIX and Linux User Community


SH script, variable built command fails, but works at command line


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting SH script, variable built command fails, but works at command line
# 1  
Old 09-14-2012
SH script, variable built command fails, but works at command line

I am working with a sh script on a solaris 9 zone (sol 10 host) that grabs information to build the configuration command line. the variables Build64, SSLopt, CONFIGopt, and CC are populated in the script. the script includes

Code:
CC=`which gcc`
CONFIGopt=' --prefix=/ --exec-prefix=/usr --libexecdir=/usr/lib/libexec --includedir=/usr/include --with-random=/dev/random'  
SSLopts=' --with-openssl=/usr/local/openssl-1.0.0j-pkcs11'
BUILD64=' -m64 -mcpu=v9'

./configure CC="\"${CC} ${BUILD64}"\" ${CONFIGopt} ${SSLopts}

When i run the sh -x script.sh i get the following output.
Code:
+sh ./configure CC="gcc -m64 -mcpu=v9" --prefix=/ --exec-prefix=/usr \
--libexecdir=/usr/lib/libexec --includedir=/usr/include --with-random=/dev/random --with-openssl=/usr/local/openssl-1.0.0j-pkcs11
checking build system type... sparc-sun-solaris2.9
checking host system type... sparc-sun-solaris2.9
checking for gcc... "gcc -m64 -mcpu=v9"
checking whether the C compiler works... no           <-------- FAILURE
configure: error: in `/bind-9.9.1-P2':
configure: error: C compiler cannot create executables
See 'config.log' for more details

config.log just has: configure:4078: "/usr/local/bin/gcc: No such file or directory.

BUT if I copy that command line and paste it to the prompt everything works.
Smilie
if i put that expanded command line into the script, it works
SmilieSmilie
# 2  
Old 09-14-2012
Code:
./configure CC="\"${CC} ${BUILD64}\"" ${CONFIGopt} ${SSLopts}


Last edited by Franklin52; 09-17-2012 at 03:32 AM.. Reason: Please use code tags for data and code samples, thanks
# 3  
Old 09-14-2012
It looks like you're trying to cram flags into CC? Those belong in ${CFLAGS} instead.
# 4  
Old 09-14-2012
rdrtx1:
Uhm, it looks like you just changed which set of quotes were passed to the shell, i don't see anything else. Didn't make any difference though.

Corona688:
Wouldn't the ${CFLAGS} just be a different variable NAME, or is ${CFLAGS} actually handled differently.

Last edited by oly_r; 09-14-2012 at 03:09 PM..
# 5  
Old 09-14-2012
The CC variable specifies the C compiler executable to use and nothing else. You need to alter the CFLAGS variable to alter the compile flags, you can't cram them in there.
This User Gave Thanks to Corona688 For This Post:
# 6  
Old 09-14-2012
Corona i'm confused that the command works fine when entered at the command line.

Code:
./configure CC="gcc -m64 -mcpu=v9" ...


CRAPPPPPPP. i just realized i was using CC in the command line to pass and not letting the env variable to be executed. Thank you Corona you made me thing about the way CC and CFLAGS were set.

Code:
CC=`which gcc`; export CC
CFLAGS="-m64 -mcpu=v9"; export CFLAGS

This User Gave Thanks to oly_r For This Post:
# 7  
Old 09-14-2012
Is everything working, then?

Previous Thread | Next Thread
Test Your Knowledge in Computers #1011
Difficulty: Easy
The number 128 in base 10 equals 10000000 in base 2.
True or False?

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Replace string works on command-line but fails when run from shell script

I wish to replace "\\n" with a single white space. The below does the job on command-line: $ echo '/fin/app/scripts\\n/fin/app/01/sql' | sed -e 's#\\\\n# #g'; /fin/app/scripts /fin/app/01/sql However, when i have the same code to a shell script it is not able to get me the same output:... (8 Replies)
Discussion started by: mohtashims
8 Replies

2. Shell Programming and Scripting

Find command works on Linux but fails on Solaris.

Hi, I am looking for a generic find command that works on both Linux and Solaris. I have the below command that works fine on Linux but fails on solaris.find /web/config -type f '(' -name '*.txt' -or -name '*.xml' -name '*.pro' ')' Fails on SunOS mysolaris 5.10 Generic_150400-61 sun4v sparc... (1 Reply)
Discussion started by: mohtashims
1 Replies

3. Shell Programming and Scripting

Works on command line but not in script

OSX 10.9 I am building a script that evaluates the difference between 2 files. Here is a command that does not work transparently. Running this command in Terminal yields great results; however when I put that line in a .sh script, I get the errors shown below. Am I doing something silly? ... (1 Reply)
Discussion started by: sudo
1 Replies

4. UNIX for Dummies Questions & Answers

Works on command line but not in script; vncserver on solaris 10

Hi guys. My first post, so be gentle... On my Solaris 10 machine vnc server is running. I need a command to extract most recent client session number (screen). So with: Code: bash-3.2# ps -ef | grep vnc | grep Xaut root 19805 19797 0 15:41:44 ? 0:01 Xvnc :4 -inetd -once... (5 Replies)
Discussion started by: cp6uja
5 Replies

5. UNIX for Dummies Questions & Answers

Works on command line but not in script

Hey guys. Hopefully this is an easy one but having reference similar problems on the web I still can't fix it. I am doing a recursive find and replace from a script. Of course I could just run the damn thing from the command line but it's bugging me now and want to get it working. grep -rl... (4 Replies)
Discussion started by: anthonyjstewart
4 Replies

6. Shell Programming and Scripting

Need help! command working ok when executed in command line, but fails when run inside a script!

Hi everyone, when executing this command in unix: echo "WM7 Fatal Alerts:", $(cat query1.txt) > a.csvIt works fine, but running this command in a shell script gives an error saying that there's a syntax error. here is content of my script: tdbsrvr$ vi hc.sh "hc.sh" 22 lines, 509... (4 Replies)
Discussion started by: 4dirk1
4 Replies

7. Shell Programming and Scripting

This code works in the command line but not in a shl script

When I run this code from the command line works spinel.middlebury.edu:/u02/sct/banner/bandev2/middlebury/shl:DEV2$ ls ef* eftseq.dat spinel.middlebury.edu:/u02/sct/banner/bandev2/middlebury/shl:DEV2$ file_seq=$( < eftseq.dat) ... (1 Reply)
Discussion started by: rechever
1 Replies

8. Shell Programming and Scripting

Zgrep works at command line but not in script?

Hi all- I'm trying to search through some .gz log files to verify certain feeds have passed through our app. I have a small script that I wrote in hopes that I could automate the checking but haven't been able to get the zgrep to work. When I copy it to the command line directly it works... (2 Replies)
Discussion started by: Cailet
2 Replies

9. Shell Programming and Scripting

Cron job fails, but works fine from command line

I have a very basic script that essentially sends a log file, via FTP, to a backup server. My cron entry to run this every night is: 55 23 * * * /usr/bin/archive_logs The script runs perfectly when executed manually, and actually worked via cron for about three weeks. However, it mysteriously... (3 Replies)
Discussion started by: cdunavent
3 Replies

10. UNIX for Dummies Questions & Answers

script works on command line, not in cron job

Hey there, I'm a total newbie unix guy here and just picking this stuff up. Have a very small script I put together that works fine from the command line but not once I put it in a cron job. Searched and found this thread and am wondering it it has something to do with setting variables, though the... (7 Replies)
Discussion started by: JackTheTripper
7 Replies

Featured Tech Videos