试图找出ksh如何处理构造!(文本)。例如,
$ echo!(你好)
生成当前目录中的文件列表(类似于ls命令的输出,除了它分为列而不是行)。 parens中的文本无关紧要,输出是相同的。
任何人都可以告诉我该命令实际上在做什么吗?谢谢!
答案 0 :(得分:0)
它回显除hello之外的所有文件。您还可以使用echo !(*.java)
答案 1 :(得分:0)
这里有一些更详细的信息。有关详细信息,请查看"文件名生成" ksh手册页的一部分(bash以相同的方式工作)。有关更多模式,请参阅此处:https://www.mkssoftware.com/docs/man1/sh.1.asp
$groups | ForEach-Object {
$user = [System.IO.Path]::GetFileNameWithoutExtension($_.Name)
$_.Group.line | Sort-Object | Select-Object -Unique | ForEach-Object {
[PSCustomObject]@{
User = $user
Computer = $_
}
$user = $null
}
} | Export-Csv -Path C:\temp\workstationids.csv -NoTypeInformation
因此,对于您的示例,当shell看到未加引号的感叹号,然后是括号,它进入文件名匹配模式,然后它显示当前目录中不匹配的文件&#34; hello&#34;。< / p>