我有一个脚本需要知道处理器架构。我这样做:
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
但是当我执行代码时,我收到:
instala_chrome.sh: line 35: [[x86_64: command not found
有人能帮我解决这个问题吗?谢谢!
答案1
更好的使用:
if [[ "$(uname -m)" == "x86_64" ]]; then
[[
注意第一个参数、两个符号之间的空格,以及和=
之间的空格"x86_64"
]]
!
此外,在 echo 中包含以下内容并不是一个好主意:)
我认为那是进行此类操作时最好的参考地点:http://mywiki.wooledge.org/BashPitfalls
答案2
实际上,在 之后需要一个空格,[[
在 之前需要一个空格,]]
并且 应该]];
连在一起。此外,将其#!/bin/bash
作为脚本的第一行也是一种很好的做法,这样执行时就知道要使用哪个 shell。