#!/bin/bash
num=1
(( ((num % 2)) == 0 ))
我可以从centos机器运行这个脚本,但我无法在我的ubuntu 16.04上运行它。
对于后者,会发生以下情况:
Syntax error: word unexpected (expecting ")")
出了什么问题?
答案 0 :(得分:2)
使用短划线(Ubuntu用作fid = fopen('filename', 'r');
characters = fread(fid, '*char');
fclose(fid);
% Determine whether each character in the input was a digit between 0 and 9
isDigit = ismember(characters, '0':'9');
% Count the total number of characters that were digits
nDigits = sum(isDigit);
)代替bash运行代码时,会出现此语法错误。
/bin/sh
vs,在bash,正确的操作:
$ dash -c 'num=1; (( ((num % 2)) == 0 )); echo $?'
dash: 1: Syntax error: word unexpected (expecting ")")
请确保您将脚本作为$ bash -c 'num=1; (( ((num % 2)) == 0 )); echo $?'
1
(符合./yourscript
行)或#!/bin/bash
(明确使用bash)而非bash yourscript
运行(保证只运行符合POSIX的shell解释器,而不是使用bash扩展)。
答案 1 :(得分:0)
只需将其更改为
即可if (( num % 2 == 0 ))