Quantcast
Channel: Bashタグが付けられた新着記事 - Qiita
Viewing all articles
Browse latest Browse all 2819

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

$
0
0

3行でまとめると

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

背景

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

main.sh
#!/bin/shwork_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が必要。

Viewing all articles
Browse latest Browse all 2819

Trending Articles