首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将代码从mac转移到linux机器时出现语法错误

将代码从mac转移到linux机器时出现语法错误
EN

Stack Overflow用户
提问于 2019-11-17 00:22:41
回答 1查看 101关注 0票数 0

我编写了这段代码,以便在我的Linux远程机器上执行,以便使用不同的输入进行一些重复的实验。

代码语言:javascript
复制
#!/bin/bash
#timeout 10m
trap "exit 1" INT 

repeat() {
  executiontime=$( /usr/bin/time  /home/me/optimathsat-1.5.1-macos-64-bit/bin/optimathsat < file.smt2 2>&1 >/dev/null)
  echo "$executiontime">>results.csv

}
export -f repeat

for length in 30 ; do
    step=0.05
    short=0 #0
    long=1
    for i in {1..10}; do
    ratio=0
        for j in {1..10}; do
                declare -a listofresults
                echo "$length $short $long $ratio">>results.csv
                python3 main.py "$length" "$short" "$long" "$ratio">file.smt2
                chmod 775 file.smt2
                declare total=0
                declare m=0
                parallel -n0 repeat ::: {1..10}
                ratio=$(echo "scale=10; ($ratio) + ($step)" | bc) 
            done
            short=$(echo "scale=10; ($short) + ($step)" | bc)
            long=$(echo "scale=10; ($long) - ($step)" | bc)
        done
    done
trap - INT

我已经在我自己的mac机器上执行了这段代码,并且它工作正常(使用gtime而不是/usr/bin/time ),但是现在我得到了这个错误,我不知道它是什么意思/

代码语言:javascript
复制
   0inputs+0outputs (0major+66minor)pagefaults 0swaps
    /home/me/optimathsat-1.5.1-macos-64-bit/bin/optimathsat: 1: /home/project/optimathsat-1.5.1-macos-64-bit/bin/optimathsat:

 Syntax error: word unexpected (expecting ")")

当我尝试手动执行这些指令时,我得到的结果是:

代码语言:javascript
复制
src$ python3 main.py 10 0.5 0.5 0.5>file.smt2

我检查了file.smt2,它应该是这样的,然后就会发生这种情况

代码语言:javascript
复制
src$ /home/project/optimathsat-1.5.1-macos-64-bit/bin/optimathsat < file.smt2
    -bash: /home/project/optimathsat-1.5.1-macos-64-bit/bin/optimathsat: cannot execute binary file: Exec format error
EN

回答 1

Stack Overflow用户

发布于 2019-11-17 01:26:55

  • 您可以从使用跟踪$ bash -x myscript.sh进行调试开始。它将显示导致错误的行。看The Linux Documentation Project's guide.
  • I总是得到一点macOS是不区分大小写的,尽管它保留大小写。也就是说,我可以在macOS上运行echo "Hello" > foo; cat Foo,但不能在Linux上运行。
  • macOS是基于BSD的,而不是基于Linux的。有一些基本命令在两个系统之间具有不同的标志。

希望这能有所帮助!

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58892753

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档