我试图使用bash和shell脚本生成1 0反转8位二进制数,反之亦然然后保存新变量,将10101010转换为01010101。
input=10101010
echo $input
echo $Input | tr 01 10
会给我
10101010
01010101
但如果我尝试,我不允许将其保存到新变量:
invertedInput=$Input | tr 01 10
我怎样才能做到这一点?
答案 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