赫斯基:预提交钩子启动bash脚本,但不等待用户选择

问题描述

当我进行提交时,bash脚本启动,但不等待用户选择

.huskyrc文件

{
  "hooks": {
    "pre-commit": "bash scripts/pre_commit.sh"
  }
}

pre_commit.sh文件

   #!/bin/bash

    ps3='Please enter your choice: '
    options=("X" "Y" "Z")
    select opt in "${options[@]}"
    do
        case $opt in
            "X")
                echo "works"
                exit 0                                            
                ;;
            "Y")
                npm run test
                exit 0  
                ;;
            "Z")
                echo "Option Z";
                exit 0                                               
                ;;
            *) echo "invalid option $REPLY";;
        esac
    done
    exit 0

解决方法

答案是在PS3 =之前添加的,“请输入您的选择:”

允许我们阅读下面的用户输入,将stdin分配给键盘

if [ -t 1 ]; then
  exec < /dev/tty
fi