微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在bash脚本中错误的replace错误

我已经尝试了很多,但无法从中解决问题。 我有一个简单的脚本:

#! /bin/sh o="12345" a=o b=${!a} echo ${a} echo ${b}

当执行像

$ . scp.sh

它产生正确的输出没有错误,但是当执行如下:

$ ./scp.sh

它产生

CRONTAB语法错误

python joblib在Windows平行并不工作甚至“if __name__ =='__main__':”被添加

Batchfile – 命令的语法不正确

语法命令错误

bash语法错误:“(”unexpected“

./scp.sh:4:./scp.sh:错误的replace

任何想法为什么发生这种情况。

我被build议使用bash模式,它工作正常。 但是,当我通过Python执行相同的脚本(将脚本标题更改为bash)时,我得到相同的错误

我从Python调用它为:

import os os.system(". ./scp.sh")

在bash脚本意外的“语法错误:意外的文件结束”上if语句

Python 3.2.2在Mac上打印函数语法错误,但不在Windows上

为什么这个PHP代码在一台机器上运行,并在另一台机器上失败?

使用IF ELSE时出错

如何确定batch file中的哪一行有语法错误

尝试使用:

#!/bin/bash

代替

#! /bin/sh

这个错误的原因是在这些情况下使用了两个不同的shell。

$ . scp.sh $ . scp.sh命令将使用当前shell( bash )来执行脚本(不分叉子shell)。

$ ./scp.sh命令将使用脚本的hashbang行中指定的shell。 在你的情况下,这可能是sh或dash 。

最简单的方法是用#!/bin/bash (或者bash所在的路径)替换第一行。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐