回答編集履歴

1

追記

2020/03/12 15:55

投稿

Zuishin
Zuishin

スコア28660

test CHANGED
@@ -3,3 +3,39 @@
3
3
 
4
4
 
5
5
  source を使ってみてください。
6
+
7
+
8
+
9
+ ## 追記
10
+
11
+
12
+
13
+ ちなみに質問に挙げられている a.ps1 を普通に PowerShell で実行しても funchello を使うことはできません。PowerShell の場合も Bash と同じく `. .\a.ps1` のように `.` を使う必要があります。これをドットソースと呼びますが、こうすることでスクリプト中の変数や関数を現在の環境にエクスポートすることができます。
14
+
15
+
16
+
17
+ 特定の関数だけエクスポートするには、次のように global スコープを付けます。
18
+
19
+
20
+
21
+ ```PowerShell
22
+
23
+ function global:funchello {
24
+
25
+ echo "Hello"
26
+
27
+ }
28
+
29
+ ```
30
+
31
+
32
+
33
+ スタートアップに使われる $PROFILE は例外で、グローバルスコープで実行されるので、ここに書かれた関数や変数はデフォルトでエクスポートされます。
34
+
35
+
36
+
37
+ PowerShell のスコープについては次が理解しやすいと思います。
38
+
39
+
40
+
41
+ [PowerShell のスコープ完全に理解した - 鷲ノ巣](https://tech.blog.aerie.jp/entry/powershell-advent-calendar-2018-18)