Korn shell元字符:什么(有些文字)是什么意思?

时间:2016-07-18 16:29:56

标签: unix ksh

试图找出ksh如何处理构造!(文本)。例如,

$ echo!(你好)

生成当前目录中的文件列表(类似于ls命令的输出,除了它分为列而不是行)。 parens中的文本无关紧要,输出是相同的。

任何人都可以告诉我该命令实际上在做什么吗?谢谢!

2 个答案:

答案 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>