Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Windows CURL-无效字符'\\n';字符串文字_Windows_Bash_Shell_Curl_Ethereum - Fatal编程技术网

Windows CURL-无效字符'\\n';字符串文字

Windows CURL-无效字符'\\n';字符串文字,windows,bash,shell,curl,ethereum,Windows,Bash,Shell,Curl,Ethereum,因此,我正在编写一个简单的bash脚本,它接受明文消息,将其转换为十六进制,并对本地主机上运行的geth客户机进行curl调用,以对数据进行签名。我能够将明文消息转换为十六进制,但是当将转换后的十六进制变量作为输入发送到CURL命令时,它给了我- jsonrpc:“2.0”,“错误”:{“代码”:-32600,“消息”:“字符串文字中的无效字符'\n'}” 以下为守则- #!/bin/bash # grabbing day and month from current date D=$(dat

因此,我正在编写一个简单的bash脚本,它接受明文消息,将其转换为十六进制,并对本地主机上运行的geth客户机进行curl调用,以对数据进行签名。我能够将明文消息转换为十六进制,但是当将转换后的十六进制变量作为输入发送到CURL命令时,它给了我-

jsonrpc:“2.0”,“错误”:{“代码”:-32600,“消息”:“字符串文字中的无效字符'\n'}”

以下为守则-

#!/bin/bash

# grabbing day and month from current date
D=$(date)
DAY=$(date -d "$D" '+%d')
MONTH=$(date -d "$D" '+%m')
YEAR=$(date -d "$D" '+%Y')


echo "Day: $DAY"
echo "Month: $MONTH"
echo "Year: $YEAR"

# prepare todays JSON message for attestation

a="SH_$YEAR$MONTH$DAY"
b="_324019325_1_10_001_00_test"
filename=$a$b
hash="test hash"
addl_data="test data"
tag="test tag"

msg=$filename$tag$addl_data$hash
echo "Prepared Message is - $msg"


msg_hex_wn=$(xxd  -ps <<< "$msg")| tr -d '\040\011\012\015'
echo "Message in hex - $msg_hex_wn"
echo "\n"
echo $(xxd  -ps <<< "$msg")| tr -d '\040\011\012\015'


# Signing the message in hex
curl -X POST localhost:8545  -d "{\"jsonrpc\":\"2.0\",\"method\":\"eth_sign\",\"params\":[\"0x525c846b777d003048dbabd0f2dd677086839812\", \"$(xxd  -ps <<< "$msg")| tr -d '\040\011\012\015'\"],\"id\":5}" 





read
!/bin/bash
#从当前日期开始抓取日期和月份
D=$(日期)
日期=$(日期-d“$d”+%d”)
月=$(日期-d“$d”+%m')
年份=$(日期-d“$d”+%Y)
回声“天:$Day”
echo“月:$Month”
回声“年:$Year”
#准备今天的JSON消息以供认证
a=“SH_$YEAR$MONTH$DAY”
b=“_324019325_1_10_001_00_测试”
filename=$a$b
hash=“测试哈希”
addl_data=“测试数据”
tag=“测试标签”
msg=$filename$tag$addl_data$hash
echo“准备好的消息是-$msg”

msg_hex_wn=$(xxd-ps您的具体问题是将管道放到命令替换之外的
tr
。tr yada yada
需要放在
$(xxd…
右括号内

将最终值捕获到变量中并将其插入
curl
命令行可能会大大简化故障排除

至于其他方法,我可能会选择一个简单的单行线

perl -pe 's/(.)/ sprintf("%02X", ord($1)) //ge' <<<"$msg"
perl-pe的/()/sprintf(“%02X”,ord($1))//ge'