如果我这样做z='ls'
,echo $z
它将打印我列出的目录,但没有换行符或格式。我认为缺少彩色格式是无法解决的,但是是否可以在其中添加换行符?
答案1
引用变量:
echo "$z"
如果不使用引号,则中的每个单词$z
将成为单独的参数echo
,如果使用引号,则整个变量将成为单个参数 - 换行符和所有内容。
答案2
你可以通过说来获得颜色
z=$(ls --color)
或者更明确地说,
x=$(ls --color=always)
$(command)
(本质上)等同于;参见`command`
在 shell 脚本中使用 $() 代替反引号有什么好处?
ls
的默认值是--color=auto
,这意味着仅在写入终端时使用颜色(即当标准输出是终端时)。 并运行$(command)
`command`
command
输出到管道;即使在这种情况下--color=always
也要ls
使用颜色。
您可以通过比较轻松测试
ls | cat
和
ls --color | cat