こんにちは、どなたか分かる方がいらっしゃれば教えてください><
shellスクリプトの実行方法の違いについて、分からない事があります。
今回下記の様なファイルを用意します。
cat /root/dir/run.sh
lang
1#!/bin/bash 2/home/user/dir/test.sh
$ls -al /home/user/dir/test.sh
-rw-r--r-- 1 root root 645 Jun 17 15:11
cat /home/user/dir/test.sh
lang
1#!/bin/bash 2echo 'test'
①
まず上記の場合にrootユーザーでログインし「/root/dir/run.sh」を実行します。
するとPermission deniedでエラーになります。
$ /root/dir/run.sh
-bash: /home/user/dir/test.sh: Permission denied
②
しかし、「.」コマンドでtest.shを実行すると問題無く実行できました。
cat /root/dir/run.sh
lang
1#!/bin/bash 2. /home/user/dir/test.sh
③
ついでにshコマンドの結果
cat /root/dir/run.sh
lang
1#!/bin/bash 2sh /home/user/dir/test.sh
$ /root/dir/run.sh
sh: 0: Can't open /home/user/dir/test.sh: Permission denied
①も②もカレントシェルで実行で同じ事だと思っていたのですが、
どうして挙動が違うのか分かりません。
ちなみに、この場合のカレントシェルはbashの認識です。
$ echo $SHELL
/bin/bash
どなたか、分かる方がいらっしゃいましたら、ご教授下さい。
宜しくお願い致します。
回答2件
あなたの回答
tips
プレビュー
下記のような回答は推奨されていません。
このような回答には修正を依頼しましょう。
2015/06/18 05:34
2015/06/18 07:09
2015/06/18 07:13
2015/06/18 07:42