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!

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

  • This works. Thank you. Can you recommend a online documentation for reading? – Alexandre Teles Aug 31 '12 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 '12 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.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.