スクリプトをsourceコマンドで実行する際の実行権限


スクリプトファイル実行時sourceコマンドを使用した場合と直接スクリプトファイルを

実行した時の必要権限と挙動の違いを試してみる。

 

適当なスクリプトを用意して

───────────────────────

while.sh
#!/bin/bash

string=”Hello”

while [ $string != “Hello!!!” ] do
string=$string”!”
echo $string
done

───────────────────────

 

まずは”source”コマンドを試す

結果:

実行権限は無くても実行できてスクリプト内で定義した変数がシェルへ引き継がれている。

 

次に”./”で直接スクリプトファイルを実行してみる

結果:

先の検証で引き継がれた変数は削除してから実行するも権限が無いため実行できず(まあ当然)

実行権限を付与すれば実行可能だが変数は引き継がれない。

 

普段あまり意識してなかったけど結構大きな違いがありますね。

 

  • このエントリーをはてなブックマークに追加

PAGE TOP