我正在写一个脚本围绕复制一些文件,并尝试使用shopt -s dotglob
,使CP复制点文件像.jshint
和诸如此类的东西。
我可以shopt -s dotglob
直接在bash提示符下运行,没有错误。但是,运行脚本会引发错误:
script.sh: 81: script.sh: shopt: not found
我正在使用shebang标头在bash shell中运行此脚本#!/usr/bin/env bash
。错误行:
shopt -s dotglob
cp -r $TEMP/img/* $TARGET/img/
cp -r $TEMP/js/* $TARGET/js/
cp -r $TEMP/less/* $TARGET/less/
在Google上找不到任何有用的东西,知道这里的问题是什么?
感谢您的提醒,我将尽一切可能选择答案。除了这个问题之外,还没有一个好的答案。
—
Kurtosis
尝试使用更简单的
—
ish 2012年
#!/bin/bash
标题吗?
哪个Ubuntu版本?
—
ish 2012年
@izx是正确的答案,
—
geirha
shopt
是内置的bash,sh
没有shopt
,错误消息看起来像来自的错误消息dash
。因此,最有可能的错误是运行bash脚本sh
(dash
默认情况下在Ubuntu中)。即使sh
是的符号链接bash
,使用运行bash脚本也与使用运行bash脚本sh
不同bash
。