TR-42 / minishell

https://tr-42.github.io/minishell/
0 stars 0 forks source link

権限不足なコマンドに `Permission denied` を表示するべき? #84

Open TetsuOtter opened 1 year ago

TetsuOtter commented 1 year ago
bash-3.2$ /bin/ls -lR
total 0
drwxr-xr-x  3 tetsu  staff  96 Jun 10 21:34 a
drwxr-xr-x  3 tetsu  staff  96 Jun 10 21:35 b

./a:
total 8
-rw-r--r--  1 tetsu  staff  27 Jun 10 21:34 test.sh

./b:
total 8
-rwxr-xr-x  1 tetsu  staff  27 Jun 10 21:35 test.sh
bash-3.2$ echo $PATH
a:b
bash-3.2$ 

上記のような場合に、bashだと Permission Denied が表示される。

bash-3.2$ test.sh
bash: a/test.sh: Permission denied
bash-3.2$ 

これに対し、minishellだと「実行権限があるか」を確認するため、b/test.shが実行されてしまう。

minishell> test.sh
b/test.sh
minishell> 

なお、zshでは b/test.sh が表示される挙動であるため、極端におかしい挙動ではない。

tetsu@TRs-MacBook-Pro:~/tmp% echo $PATH                                        
a:b
tetsu@TRs-MacBook-Pro:~/tmp% test.sh                                           
b/test.sh
tetsu@TRs-MacBook-Pro:~/tmp%