What's the command of call operator &?

后端 未结 2 1658
轻奢々
轻奢々 2021-01-12 05:42

I used ls alias: and tried to find &. However, & is not in the output. What\'s &? Is it the combination of In

2条回答
  •  既然无缘
    2021-01-12 05:54

    Some other uses for the call operator, not well documented:

    # Get and set a variable in a module scope with the call operator 
    # get module object
    $m = get-module counter
    
    & $m Get-Variable count
    & $m Set-Variable count 33
    
    # see module function definition
    & $m Get-Item function:Get-Count
    
    # run a cmdlet with a commandinfo object and the call operator
    $d = get-command get-date
    & $d
    

    You can think of & { } as an anonymous function.

    1..5 | & { process{$_ * 2} }
    

    Another really useful operator is the subexpression operator. $( ) It's not just for inside strings. You can combine two statements and make them act as one.

    $(echo hi; echo there) | measure
    

    If and Foreach statements can go inside them too. You couldn't normally pipe from foreach (). So anywhere you could put an expression or pipeline, with $() you can put any statement or group of statements.

    $(foreach ($i in 1..10) { $i;sleep 1 } ) | Out-Gridview
    

    Although, I like streaming from foreach with the call operator (or function), so I don't have to wait.

     & {foreach ($i in 1..10) { $i;sleep 1 } } | Out-GridView
    

提交回复
热议问题