bashスクリプトはエイリアスを生成したり$ PS1を更新したりしません。

bashスクリプトはエイリアスを生成したり$ PS1を更新したりしません。

よく使うエイリアスを設定し、コマンドプロンプトを変更するためにbashスクリプトを書く必要があると思いました。

以下は私のスクリプトです。

#!/bin/bash
# Make useful aliases
alias c='clear'
alias p='pwd'
alias d='pwd'
alias l='ls -l'
alias clp='clear;pwd'
# Prompt
PS1='unix % '
# Echo to check if script runing
echo 'Hello world'

ただし、このスクリプトを実行すると(実行権限を付与した後)、エイリアスは追加されません。プロンプトもPS1によって提供された値に更新されません。それでもechoが出てくるHello worldので、スクリプトが実行されているようです。

user $ ./myEnv.sh 
Hello world
user $ d
d: command not found
user $

エラーはどこにありますか?

ベストアンサー1

スクリプトが独自の環境でこれらの変数を生成するのは簡単です。その後、終了すると、特定の環境が破壊され、これらの変数が目的の方法で設定されていない親シェル環境に戻ります。

実行するのではなく、このようにインポートする必要があります。. myEnv.sh

おすすめ記事