2

I have a script that needs to know the processor architecture. I'm doing this way:

if [["$(uname -m)" = "x86_64"]]; then
wget https://dl.google.com/linux/direct/google-chrome-stable_current_x86_64.rpm
else
echo "Nossa! Você só pode usar 3,5GB de memória RAM. Que triste :( Vou baixar a versão 32bits pra você tá?"
wget https://dl.google.com/linux/direct/google-chrome-stable_current_i386.rpm
fi

But when I execute the code, I receive:

instala_chrome.sh: line 35: [[x86_64: command not found

Anyone can help me to solve this? Thanks!

2 Answers 2

5

Better use:

if [[ "$(uname -m)" == "x86_64" ]]; then

Notice the space between [[ and first parameter, two = signs , and the space between "x86_64" and ]]

Also, it is not a good idea to include ! inside echo :)

I think that that's the best place to refer to when doing such operations: http://mywiki.wooledge.org/BashPitfalls

2
  • This works. Thank you. Can you recommend a online documentation for reading? Aug 31, 2012 at 14:21
  • Please see my edited answer. If you think that this works and it solved your problem (and only then), then please mark my answer as the accepted one as well.
    – hytromo
    Aug 31, 2012 at 15:00
3

Actually you need a space after the [[ and a space before the ]] and the ]]; should be all together. Also, it is considered good practice to put #!/bin/bash as the first line of the script so that execution knows which shell to use.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .