在Bash中反转二进制数

时间:2017-11-09 18:22:29

标签: linux bash reverse tr

我试图使用bash和shell脚本生成1 0反转8位二进制数,反之亦然然后保存新变量,将10101010转换为01010101。

input=10101010
echo $input 
echo $Input | tr 01 10

会给我

10101010
01010101

但如果我尝试,我不允许将其保存到新变量:

invertedInput=$Input | tr 01 10

我怎样才能做到这一点?

2 个答案:

答案 0 :(得分:1)

使用x=$(cmd)捕获命令的输出并将其分配给变量。

此外,作为一种良好做法,在将变量的内容传递给命令的标准输入时,请使用cmd <<< ...而不是echo ... | cmd

像这样:

input=10101010
invertedInput=$(tr 01 10 <<< "$input")
echo "$invertedInput"
# prints: 01010101

答案 1 :(得分:1)

你只需要用$()

包装表达式的输出
invertedInput=$(echo $input | tr 01 10)

echo $ invertedInput

01010101