bash - 带美元和不带美元的双括号

标签 bash

$(...) 是否与 Bash 中的 (...) 相同?

此外,$((...)) 是否与 ((...)) 相同?

此外,${...} 是否与 {...} 相同?

更一般地说,美元符号代表什么?谢谢。

最佳答案

在下文中,我使用“returns”表示返回值,使用“produces”表示“替换结果文本”。

  • $(...)表示在子 shell 的括号中执行命令并生成其标准输出。示例:

      $ echo "The current date is $(date)"
      The current date is Mon Jul  6 14:27:59 PDT 2015
    
  • (...)表示在子 shell 中运行括号中列出的命令。示例:

      $ a=1; (a=2; echo "inside: a=$a"); echo "outside: a=$a"
      inside: a=2
      outside: a=1
    
  • $((...))表示执行算术运算并产生计算结果。示例:

      $ a=$((2+3)); echo "a=$a"
      a=5
    
  • ((...)) 表示执行算术运算,可能会更改 shell 变量的值,但不产生其结果。示例:

      $ ((a=2+3)); echo "a=$a"
      a=5
    

    注意计算的返回值返回的,所以可以在whileif中使用。

  • ${...}表示产生大括号中命名的 shell 变量的值。示例:

      $ echo ${SHELL}
      /bin/bash
    
  • {...}表示将大括号中的命令作为一个组执行。示例:

      $ false || { echo "We failed"; exit 1; }
      We failed
    

More generally what does the dollar sign stand for?

它在给定上下文中表示任何含义。

关于bash - 带美元和不带美元的双括号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31255699/

相关文章:

linux - Bash - 使用 socat 的代理服务器

linux - 如何从 crond ( crond -l 9 ) 中避免僵尸进程

linux - 后台进程bash的返回码

Linux:恢复网络连接时执行命令

bash - 如何查看所有(包括隐藏)子目录

linux - 命令行参数在 bash 中没有这样的文件或目录错误

bash - 如何正常地在 git action 的 sh 中随机运行 for 循环?

linux - 在 bash 中为单个脚本重命名可执行文件

bash - Ubuntu - curl X 次重复

bash - 如何有效地将一个文件流式传输到多个管道