从bash调用时,屏幕转义不同
发布时间:2020-12-15 20:58:57 所属栏目:安全 来源:网络整理
导读:我有一个名为ROBUST的长时间运行的服务器进程,它有一个控制台.我们在一个屏幕上运行它并附加到手动操作服务器(它是一个虚拟世界服务器). 我有一个偶尔需要添加用户的网络应用程序(在prolog中). ROBUST有几个编程接口,由于各种原因都很尴尬.所以我想尝试一下
我有一个名为ROBUST的长时间运行的服务器进程,它有一个控制台.我们在一个屏幕上运行它并附加到手动操作服务器(它是一个虚拟世界服务器).
我有一个偶尔需要添加用户的网络应用程序(在prolog中). ROBUST有几个编程接口,由于各种原因都很尴尬.所以我想尝试一下 创建用户SomeUser SomeName SomePass somebody@somewhere.com 在控制台上.这条线 屏幕-S ROBUST -p 0 -X评估’东西’创建用户SomeUser SomeName SomePass somebody@somewhere.com ^ M“’ 作品 但是当我把它放在这个bash脚本中时 #!/bin/bash screen -S ROBUST -p 0 -X eval 'stuff "create user $1 $2 $3 $4 ^M"' 它没有. 我已经尝试了我能想到的每个方案来逃避各种单引号和双引号,但此时我很难过. 后来评论: 我通过弄清楚prolog process_create语法来解决对bash脚本的需求 ?- process_create(path(screen),['-S','ROBUST','-p','0','-X',eval,'stuff "create user Manny Muncher somepass somebody@uh.edu^M"'],[]). 解决方法screen -S ROBUST -p 0 -X eval 'stuff "create user $1 $2 $3 $4 ^M"' 字符串不会在”内扩展.你必须使用“”来bash扩展1美元等. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |