我需要将一个字符串传递给程序作为Bash CLI中的参数,例如
program "don't do this"
Run Code Online (Sandbox Code Playgroud)
该字符串可能包含任何字符,如'$','\'等等,我不希望Bash做任何修改.所以我考虑使用单引号.
但是以下不起作用:
program 'don\'t do this' //escape doesn't work in single quote
Run Code Online (Sandbox Code Playgroud)
虽然以下两个工作:
program $'dont\'t do this' //seems fine, but any other side effects?
program 'dont'\''do this' //breaking into 3 parts
Run Code Online (Sandbox Code Playgroud)
第一种方法似乎更好,因为它获得前修改以下(把美元符号在前面,并替换每\到\\),但我不知道还有什么美元符号可能会做.
我真的用谷歌搜索了这个,但我找不到我需要的东西......
我想在Dockerfile中编写以下RUN命令.但是,docker并没有保留新的线条.
RUN echo "[repo] \
name = YUM Repository \
baseurl = https://example.com/packages/ \
enabled = 1 \
gpgcheck = 0" > /etc/yum.repos.d/Repo.repoxyz
Run Code Online (Sandbox Code Playgroud)
我知道\在每一行的末尾都会逃脱新行.但是,有什么方法可以写多行来保留新行吗?