안녕하세요, 저는 bash와 코딩 전반에 대해 완전히 처음 접했습니다. 실행하고 싶은 화면 명령이 있습니다. "ftb" 화면에서 Minecraft 콘솔을 실행하고 있습니다.
screen -S ftb -p 0 -X stuff "tellraw @p ["",{"text":"This is a text!","bold":true,"color":"gold"},{"text":"\n"},{"text":"More text to be seen here!"},{"text":"\n"},{"text":"HAVE SOME TEXT IN UR FACE!","color":"green","clickEvent":{"action":"open_url","value":"https://google.com"}},{"text":"\n"},{"text":"Have Fun!"}]"
그러나 명령은 모든 따옴표와 혼동됩니다. 지금까지 시도해 보았지만 운이 없었습니다 ...
#! /bin/sh
say_this()
{
screen -S ftb -p 0 -X stuff "$1^M"
}
say_this "tellraw @p ["",{"text":"This is a text!","bold":true,"color":"gold"},{"text":"\n"},{"text":"More text to be seen here!"},{"text":"\n"},{"text":"HAVE SOME TEXT IN UR FACE!","color":"green","clickEvent":{"action":"open_url","value":"https://google.com"}},{"text":"\n"},{"text":"Have Fun!"}]"
화면이 모든 따옴표를 무시하고 전체 명령을 Minecraft 콘솔로 보내고 "ftb" 화면에서 실행되도록 Minecraft 콘솔에서 실행하려는 명령을 캡슐화하는 방법이 있습니까?
명령은 콘솔에서 작성되고 실행되어야 합니다.
tellraw @p ["",{"text":"This is a text!","bold":true,"color":"gold"},{"text":"\n"},{"text":"More text to be seen here!"},{"text":"\n"},{"text":"HAVE SOME TEXT IN UR FACE!","color":"green","clickEvent":{"action":"open_url","value":"https://google.com"}},{"text":"\n"},{"text":"Have Fun!"}]
답변1
그것은 아무것도 아닌 껍질입니다 screen
. 전체 내용을 작은따옴표로 묶어야 합니다. 작은따옴표의 유일한 특수 문자는 작은따옴표(따옴표로 끝남)입니다.
그러므로 이 문장은 이렇게 되어야 한다.
say_this 'message'
예를 들어
say_this 'tellraw @p ["",{"text":"This is a text!","bold":true,"color":"gold"},{"text":"\n"},{"text":"More text to be seen here!"},{"text":"\n"},{"text":"HAVE SOME TEXT IN UR FACE!","color":"green","clickEvent":{"action":"open_url","value":"https://google.com"}},{"text":"\n"},{"text":"Have Fun!"}]'