wsl で cd を使用して bash スクリプトを使用しようとしましたが、何も起こりません

wsl で cd を使用して bash スクリプトを使用しようとしましたが、何も起こりません

wslでbashスクリプトを学習するために、nanoでDesktop.shとして保存するための次のスクリプトを作成しました。

#!/bin/bash 
cd /mnt/c/Users/myusername/Onedrive/Desktop

シェルでbash Desktop.shと入力すると

何も起こりません

アドバイスがあれば助かります

答え1

コマンドで呼び出したスクリプトはbash Desktop.sh完全に動作しましたが、効果は見られません。

なぜ?

スクリプトはサブシェルで実行されるためです。

スクリプトを実行するとbash Desktop.shサブシェルが起動し、サブシェル内で任意のコマンドが実行されます。したがって、現在のディレクトリはサブシェル内でのみ変更されます。スクリプトが停止すると、何も変更されていないシェルに戻ります。スクリプトを実行可能にした場合も同じことが起こり、パス名を入力してスクリプトを実行します。その場合、#!/bin/bashどのシェルをロードするかを決定するためにシェバン ( ) が読み取られます。

見る効果を得るには、代わりcd現在シェル。これを行うには調達スクリプト:

source Desktop.sh

またはショートカット表記:

. Desktop.sh

これで、プロンプトにスクリプト内のコマンドを自分で入力した場合と同じ効果が得られます。

関連情報