基本上我想为变量 $finalbyte 分配一个值(它由一个字节的二进制表示组成,例如 11100000)。所以试图做到这一点,我把以下内容作为一些脚本的一部分:
field4=224 ##224 for example, it could be any number.
##Depends on the script
finalbyte=$(echo 'obase=2; ibase=10; ${field4}' | bc) ##<-------error here
Run Code Online (Sandbox Code Playgroud)
我收到以下错误,这有点像显而易见的解释,但我的问题是我不知道或想象 $field4 可以在其他参数之间嵌套的方式。错误是:
(standard_in) 1: illegal character: $
Run Code Online (Sandbox Code Playgroud)
使用双引号代替单引号。参数不会在单引号内被替换
finalbyte=$(echo "obase=2; ibase=10; ${field4}" | bc)
Run Code Online (Sandbox Code Playgroud)
此外,如果您使用的是 bash,对于这种情况,您可能更喜欢使用 here-strings 代替命令:
bc <<<"obase=2; ibase=10; ${field4}"
Run Code Online (Sandbox Code Playgroud)