【问题标题】:Can't use var1=$(cmd) in bash script (only in unix)不能在 bash 脚本中使用 var1=$(cmd)(仅在 unix 中)
【发布时间】:2016-03-21 23:22:17
【问题描述】:

我正在尝试这样做:

OS=$(uname -s)

它在终端上运行良好,但是,它抛出了这个:

第 x 行出现语法错误:'OS=$' 意外

我正在使用 #!/bin/bash。

【问题讨论】:

  • 在这里的脚本中工作正常。脚本上一行中的某些内容是否会导致错误?
  • 前几行是 #!/bin/bash SunOS="SunOS" Linux 仅在 UNIX 中无错误地运行脚本我遇到此错误
  • 确保 bash 存在于您的 UNIX 平台中。 which bash
  • 在 Solaris (SunOS) 上,/bin/sh 是旧的 Bourne shell,无法识别 $(…) 表示法。如果您使用sh script.sh,代码将因该错误而失败。确保 shebang 使用 #!/bin/bash#!/bin/ksh 并确保使用其中一个 shell 而不是 sh 运行脚本。
  • @kakaman997,因为它以#!/bin/bash 开头,只需使用./yourscript 运行它(在设置+x 位之后)也应该可以正常工作(并且是首选,因为它可以控制脚本其解释者); 特别是使用 sh 会破坏事情。

标签: bash variables unix scripting setting


【解决方案1】:

试试:

OS="$(uname -s)"

我没有一个系统来测试这个,但我正在查看我之前创建的脚本,这就是我设置确切变量的方式。

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-12-29
  • 1970-01-01
  • 2013-06-16
  • 1970-01-01
  • 1970-01-01
  • 2011-03-17
  • 2015-06-22
相关资源
最近更新 更多