比方说,你有一个alias像bash 一样:
alias rxvt='urxvt'
Run Code Online (Sandbox Code Playgroud)
哪个工作正常.
然而:
alias rxvt='urxvt -fg '#111111' -bg '#111111''
Run Code Online (Sandbox Code Playgroud)
不会起作用,也不会:
alias rxvt='urxvt -fg \'#111111\' -bg \'#111111\''
Run Code Online (Sandbox Code Playgroud)
那么,一旦转义了引号,你最终如何在字符串中匹配开头和结尾的引号?
alias rxvt='urxvt -fg'\''#111111'\'' -bg '\''#111111'\''
Run Code Online (Sandbox Code Playgroud)
看起来很笨拙虽然如果你允许这样连接它们就会代表相同的字符串.
试图采取这种进一步的一步,这怎么可能工作在一个标准的bash shell:
git commit -m 'cracked enigma's code'
Run Code Online (Sandbox Code Playgroud)
这可以简单地用反斜杠转义完成,如下所示:
git commit -m 'cracked enigma\'s code'
Run Code Online (Sandbox Code Playgroud)
此外,如何使用双引号?还通过反斜杠逃避?那会是最好的方式吗?有没有好的替代方法?
git commit -m 'cracked the "real" enigma's code'
Run Code Online (Sandbox Code Playgroud) 我有一个简单的Python脚本,它接收用户名和密码作为参数,但我的密码包含两个感叹号.当我把我的剧本称为
salafek@dellboy:~/Desktop/$ emailsender.py -u username -p pass!!
Run Code Online (Sandbox Code Playgroud)
我之前输入的命令替换了感叹号:
salafek@dellboy:~/Desktop/$emailsender.py -u username -p "passemailsender.py -u username -p passwget wget http://www.crobot.com.hr/templog"
Run Code Online (Sandbox Code Playgroud)
我可以使用反斜杠(\)来逃避感叹号,但我的密码会更改.
有解决方案,如何在不更改密码的情况下逃避感叹号?
在命令行上推送到 git 的格式之一是
Url format:
https://{username:password@}github.com/{owner}/{repo}
Run Code Online (Sandbox Code Playgroud)
我的挑战是用户名和密码 - 用于我无法控制的共享帐户 - 包含@在其中(实际上两者都......)
在这种情况下我的选择是什么(而不是更改用户名、密码 - 这将需要一些额外的管理/协调步骤)。