Bash不会运行我的简单shell脚本

时间:2017-05-02 16:22:54

标签: bash shell cp

当我执行init-hooks时,我得到了

  

bash:init-hooks:command-not found

这是init-hooks的内容:

#!/bin/bash
set -e
printf '\ncopying hooks\n\n'
cp ./hooks/* ../../.git/hooks

当我从bash执行cp ./hooks/* ../../.git/hooks时,直接执行成功。 (注意这与脚本中的命令相同)

文件的证明在目录和执行结果中: enter image description here

为什么我的脚本的行为与命令/为什么找不到我的脚本不同?

2 个答案:

答案 0 :(得分:2)

在Linux系统上(bash来自),出于安全原因,当前目录通常不包含在路径中。

运行echo $PATH以检查在没有路径的情况下在命令行中提供可执行文件时用于搜索可执行文件的目录。当前目录(.)不应该在那里。

./init-hooks运行脚本,bash会找到它。

答案 1 :(得分:0)

我认为按照以下方式运行

./ init_hooks

或输入完全限定的文件名。

确保使脚本可执行

chmod + x ./init_hooks