LoginSignup
0
0

More than 3 years have passed since last update.

bashrcの環境変数が使えなくて困っていた件

Last updated at Posted at 2021-03-28

3行でまとめると

  • Bashのシェルスクリプトを実装した。
  • ~/.bashrcに定義しておいた環境変数をシェルの中で使おうとしても存在していない。
  • なるほど、~/.bashrcにexportがいるのか!!

背景

こんなコードをつくった。
$work_rootが~/.bashrcに記述してある環境変数。

main.sh
#!/bin/sh

work_dir=${work_root}/yyy/ddd/mmm/work;

cp -r $HOME/work/* ${work_root};

動かした結果

cp: cannot create regular file `/yyy/ddd/mmm/work': No such file or directory

$work_rootの部分がない・・・だと・・・
ちなみに対話型シェルでは

echo $work_root

/home/xxx/hoge

と出てくる。

改善点

.bashrcの中身の部分の記述がよろしくなかったようです。

~/.bashrc(改善前)
work_root=/home/xxx/hoge

これを、こうする。

~/.bashrc(改善後)
work_root=/home/xxx/hoge;
export work_root;

これでシェルスクリプト内で$work_rootが使えるようになる。

まとめ

  • 対話型シェルを使うときはexportなしでも環境変数が使える。
  • シェルスクリプトではexportが必要。
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0