树莓派Linux sh脚本文件函数报错: not found

王尼玛
  • 355

第一次接触树莓派脚本文件, 这是github上下载的, 为啥子报not found 的错呢??

function install_module {         # 这一行报错
  src=$1
  mod=$2

  if [[ -d /var/lib/dkms/$mod/$ver/$marker ]]; then    # 这一行报错
    rmdir /var/lib/dkms/$mod/$ver/$marker
  fi

  if [[ -e /usr/src/$mod-$ver || -e /var/lib/dkms/$mod/$ver ]]; then   # 这一行报错
    dkms remove --force -m $mod -v $ver --all
    rm -rf /usr/src/$mod-$ver
  fi
  mkdir -p /usr/src/$mod-$ver
  cp -a $src/* /usr/src/$mod-$ver/
  dkms add -m $mod -v $ver
  dkms build $kernels -m $mod -v $ver && dkms install --force $kernels -m $mod -v $ver

  mkdir -p /var/lib/dkms/$mod/$ver/$marker
}

install_module "./" "seeed"

报错为:


./install.sh: 30: ./install.sh: function: not found
./install.sh: 34: ./install.sh: [[: not found
./install.sh: 38: ./install.sh: [[: not found
./install.sh: 38: ./install.sh: -e: not found

问其他人, 好像是linux 各版本的脚本文件执行情况不同, 或者是 不用写 function , 但我也尝试删去function , 依然报错, 求大佬指点

回复
阅读 1.9k
1 个回答
✓ 已被采纳

脚本都是兼容特定的 shell 版本的, 你先要了解你的 shell 版本.

echo $SHELL

如果你的脚本是兼容 /bin/bash 你可以在脚本第一行声明

#!/bin/bash

#your code below
echo "hello"

想知道系统支持哪些 shell, 可以试试

$ cat /etc/shells
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
你知道吗?

宣传栏