シェルスクリプトでは、変数のCDが機能しません。

シェルスクリプトでは、変数のCDが機能しません。

次の変数があります

$a=/opt
$b=var
$c=usr
$path=/$a/$b/$c/man

cd $path を実行すると、そのファイルやディレクトリがないことが示されます。

ただし、このパスは実際には/opt/var/usr/manにあります。どんな提案がありますか?

ベストアンサー1

問題は変数を割り当てるときの構文エラーです。

$a=/opt
$b=var
$c=usr
$path=/$a/$b/$c/man

..変数の割り当ての前に$..が来ることができないため、動作しません。

次のように進む必要があります。

a=opt
b=var
c=usr
dir=/$a/$b/$c/man
cd $dir

名前は同じですが、状況が異なる2つの変数を使用すると混乱を招く可能性があるため、悪い考えなので最終変数の名前を変更しました。 (PATH非常に重要な環境変数です。)

おすすめ記事