【问题标题】:shell script does not return any inputshell 脚本不返回任何输入
【发布时间】:2017-04-27 07:55:13
【问题描述】:

我在名为strings 的文件中创建了一个shell 脚本,引用了post

#! /bash/sh
original_string='i love Suzi and Marry'
string_to_replace_Suzi_with='Sara'
result_string="${original_string/Suzi/$string_to_replace_Suzi_with}"

之后我创建了一个引用该post的可执行文件:

chmod +x strings

但如果我这样运行文件:

./strings

我明白了:

./strings: 5: ./strings: 替换错误

这怎么可能?我刚刚复制并粘贴了示例代码。

【问题讨论】:

  • sh 与 bash 不同
  • 可能发现 sh 不是问题,但是 shebang (#!) 和你没有提供解释器路径的事实之间的空格是一个问题,所以 #!/bin/ sh 也应该工作。如下所述,您需要回显某些内容才能显示输出。

标签: linux bash shell


【解决方案1】:

第一行无效,改成

#!/bin/bash

它应该可以工作。

【讨论】:

  • 不,我不再收到任何错误消息。但是,如果我键入“./strings”,命令行不会返回任何内容,只会跳转到新的提示符。我还想念什么吗?
  • 您没有在脚本中打印任何内容。如果要获取 result_string 的输出,请在脚本末尾添加 echo "$result_string"
猜你喜欢
  • 2015-07-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-10-23
  • 1970-01-01
  • 2021-04-03
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多