How to create a function name to the global scope in a Powershell script file


I created a script named s.ps1 to define a function named s1.


# s.ps1
function s1
{
             //
}


But, after I run this script, the s1 function is not available in the global scope like:


.\S.ps1
S1
s1′ is not recognized as a cmdlet, function, operable program, or script file.


 There are two ways to add the function name to the global scope.


1) Using the dot sourcing


. .\s.ps1 # be cautious that there are a space between two dots.


This makes all definitions in the script be exported or copied to the global scope after its execution.


2) Using global: keyword as follows:


# s.ps1
function global:s1
{
             //
}