Bash - 读取变量和直接分配变量有什么区别?

标签 bash variables scripting

只是出于好奇——下面的区别是什么..

我有一个脚本,我正在从 KB 转换为 MB。我正在使用命令替换来分配变量,但看不出如下分配它们的区别:

backup_size=$(echo "$client_kb/1024" | bc -l)

&

read backup_size < <(echo "$client_kb/1024" | bc -l)

每种做事方式的需求是什么?

谢谢

最佳答案

对于像数字这样的简单值,没有区别。但是尝试使用包含尾随空格或多行的值:

#! /bin/bash
func () {
    printf $'1  2\n3   '
}

command_substitution=$(func)
read process_substitution < <(func)

set -xv
[[ "$command_substitution" == "$process_substitution" ]]

关于Bash - 读取变量和直接分配变量有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52480117/

相关文章:

php - 从 HTML 调用 PHP 的问题

bash - 变量中带有通配符的文件名

bash - 变量扩展和命令替换之间的扩展顺序

bash - grep 在 bash 中获取匹配文本的文件名和行号

objective-c - 在另一个函数中声明的 NSMutableArray 中添加对象

file - 如何从 bash 脚本中的文件中逐行读取?

bash - 在 shell 脚本中验证日期格式

java - 当我向索引变量添加数字时,为什么它没有增加?

php - 处理 if 语句中的变量 - PHP

string - Shell 脚本三元运算符获取字符串结果