首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >sh脚本在我的计算机终端上运行良好,但在远程服务器上产生错误。

sh脚本在我的计算机终端上运行良好,但在远程服务器上产生错误。
EN

Unix & Linux用户
提问于 2016-09-29 20:30:34
回答 1查看 88关注 0票数 1

我有一个测试sh脚本,我可以在我的计算机上运行,如果一切正常的话,它不会产生任何输出。我使用scp将正在工作的文件夹中的所有内容传输到远程服务器,当我在远程服务器上运行它时,会得到以下错误

代码语言:javascript
代码运行次数:0
运行
复制
egrep: Unmatched ) or \)
egrep: Unmatched ) or \)
./script.sh: line 229: ./helperScripts/script2.pl: No such file or directory

我没有在我的计算机上看到这些错误,当我检查它在helperScripts中时,它就在那里

当我在远程服务器上运行sh -version时,

代码语言:javascript
代码运行次数:0
运行
复制
GNU bash, version 4.1.2(1)-release (i686-redhat-linux-gnu)
Copyright (C) 2009 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>

This is free software; you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

当我在我的电脑终端上运行sh -version时

代码语言:javascript
代码运行次数:0
运行
复制
GNU bash, version 3.2.57(1)-release (x86_64-apple-darwin15)
Copyright (C) 2007 Free Software Foundation, Inc.

我不知道这是否重要。有谁知道我能做什么吗?我宁愿不用在我的脚本中重写东西,因为我一直在尝试这样做,当我做新的事情时,似乎还会出现更多的问题。

EN

回答 1

Unix & Linux用户

发布于 2016-09-29 20:48:56

它不需要重要,但是的,它可能重要,取决于你的写作方式。而且,您没有为任何人提供脚本来指出如何为任何Bourne shell编写脚本。如果你想拥有更兼容的BASH版本.

使用自制软件iTerm2.app在Mac上安装Terminal.app。使用国产软件,安装BASH (brew install bash)。然后在Mac:chsh -s /usr/local/bin/bash上更改您的shell。注销。登录。今天,您可以在macOS/OS上获得BASH 4.4,这与您拥有的其他BASH版本兼容得多。这将不会节省对当前脚本的一些重写,但几乎肯定会消除新脚本的问题。

Mac的本地脚本也可以使用#!/usr/local/bin/bash,而不需要更改shell。

您还可能需要安装Xcode来从Homebrew编译软件。如果在安装Xcode之后(从App )还没有安装Xcode,请使用xcode-select --install安装Xcode的命令行工具。

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

https://unix.stackexchange.com/questions/313277

复制
相关文章

相似问题

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