2013-01-18 27 views
0

此:嵌套的bash从OS X,如果/和/或声明不打算工作到Ubuntu

while [[ $red -le 255 && $switch -eq 0 ]] || [[ $red -ge 0 && $switch -eq 1 ]]; do

作品在OS X下完全正常,但我无法得到它在Ubuntu的工作。我觉得我错过了一些非常基本的东西,但是在谷歌搜索后我还没有找到解决方案。

错误是:

[[: not found

+0

什么是你在每种情况下使用的shell版本? – Rubens

+0

在Ubuntu上使用什么版本的bash? – Steve

+0

上面的作品适用于Ubuntu的w/bash 4.2.10和OS X w/bash 3.2.48(1)。 – miku

回答

2

默认的shell和/bin/sh在Ubuntu上替代的是dash,它不明白[[。确保您正在运行bash中的脚本。

1

听起来像它可能没有使用bash。如果这是一个脚本,并没有在该文件的顶部没有hashbang(#!),你可以添加以下作为第一行:

#! /usr/bin/env bash 

如果它不是一个脚本,试图找出壳你使用:

echo $SHELL 

# or maybe this 
ps | fgrep $$ 

如果不是bash,运行bash手动第一,然后再试一次。

+0

看起来像这是我的问题,这有点令人尴尬,尽管我确信这是我要遇到的许多小问题中的第一个。 – displaynamevalue