1、首先在Linux系统中,使用echo $ 0来显示如下输出。
2、查看Linux系统上可用的所有shell,文件/ etc / shells中列出了Linux系统上可用的所有shell。 可以使用cat命令或更少的命令来查看文件的内容。
3、更改shell以使用另一个shell,要使用其他shell,只需输入其名称即可登录新shell。
4、永久更改Linux中的默认Shell,Linux允许您使用chsh命令更改默认Shell。 为您自己的登录用户更改默认Shell的最佳方法是,使用-s选项指定/ etc / shells文件中列出的Shell名称。
echo ' " '$addr' " '="$addr" =addr的值
系统没那么聪明 他看到前面2个单引号就以为是一对了 他哪知道第一个和第4个才是一对
楼主真是人才 没事拿这引号来出气 整这么多引号
BTW:你得需求我愣是没看明白 可能是我领悟能力太差了吧 祝你学习顺利
建议你看看 bash 的源代码,我觉得可能他只支持两层的引号调用。
之后因为你的三层引号,导致 bash 处理出现问题了吧?
我觉得可能会是:
引号显示部分只处理到第二级引号,后面被忽略。
变量处理实现部分是一直处理过来,所以三级引号导致前面两部都有双引号,使得引号处理代码认为只有两级,但因为一直处理过来,所以前面只要遇到双引号,就会 mask 一个 bash 变量,认为以双引号开始。之后处理所有变量。
echo '"'$addr'"' 结果是 "192.168.0.111"
单引号里面不能出现单引号,就算转义也不行,所以这个系统是echo |'"' | $addr |'"'|
变量前面的俩个单引号是一对,变量后面的是一对
只要是在双引号里的变量$都能生效
没必要这么复杂,用\"和\'不就行了
编程时逻辑清晰性也很重要,让别人也能看懂