首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >避免shell脚本中的单独文件

避免shell脚本中的单独文件
EN

Stack Overflow用户
提问于 2021-02-04 07:49:48
回答 1查看 45关注 0票数 0

我正在尝试执行以下命令,该命令运行良好

我正在执行test.sh,它将调用script1.sh。

成功运行,输出如下

代码语言:javascript
复制
applicationuser@servername:/application> sudo ./test.sh
damn, there was an error
timeout happened

这两个文件的内容如下

test.sh

代码语言:javascript
复制
timeout 10 script1.sh  && echo "timeout not happened" || echo "timeout happened"

script1.sh如下所示

代码语言:javascript
复制
if ech "right echo" 2>/dev/null ; then echo 'command was successful'; else echo 'damn, there was an error'; fi

但是当我将两个脚本组合成一个文件(test.sh)时,如下所示,

test.sh

代码语言:javascript
复制
timeout 10 if ech "right echo" 2>/dev/null ; then echo 'command was successful'; else echo 'damn, there was an error'; fi  && echo "timeout not happened" || echo "timeout happened"

当我执行脚本时,我将得到如下语法错误

applicationuser@servername:/application> sudo ./test.sh ./test.sh:第1行:如果ech“右回送”2>/dev/null,则then' ./test.sh: line 1:超时10附近的语法错误;然后回送‘命令成功’;否则回送‘该死,有错误’;fi && echo“超时未发生”

如何消除script1.sh,并将其内容放在test.sh中,并在没有语法错误的情况下执行?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-02-04 08:06:29

一个解决方案可以直接使用bash运行命令:

代码语言:javascript
复制
timeout 10 bash -c 'if ech "right echo" 2>/dev/null ; then echo "command was successful"; else echo "damn, there was an error"; fi  && echo "timeout not happened" || echo "timeout happened"'
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66041349

复制
相关文章

相似问题

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