我编写了一个小的shell脚本来将我正在处理的Java项目打包到一个jar文件中并将其复制到我的桌面和我的闪存驱动器(如果已插入)。它看起来像这样:
#!/bin/sh
NAME="ExeFinder.jar"
SRC_DIR="$HOME/Documents/Programs/Java/NetBeansProjects/ExeFinder/src"
javac $SRC_DIR/*.java # compile them in place
cp $SRC_DIR/*.class . # copy them here
rm $SRC_DIR/*.class # remove the ones there
mkdir src # make the dir for the source code
cp $SRC_DIR/*.java src # copy the source files to src
jar cfe $NAME ExeFinder ./*.class src # create the jar file
rm -r src # remove the temporary src; already in the jar
rm ./*.class # ditto for the class files
if [ -d /media/moses/Moses\ 8GB ]; then # if my flash drive is inserted
cp ExeFinder.jar /media/moses/Moses\ 8GB # copy the jar file to it
fi
cp ExeFinder.jar ~/Desktop # copy it to my desktop
rm ExeFinder.jar # remove the old file
我的问题是:当我在文件上运行shellcheck时,会显示“双引号以防止全局和单词拆分”,并突出显示其中包含*
的几行。当我用双引号括起来时,*
无法正常展开。虽然没有必要用引号括起来,但我想知道是否,如果是这样,我可以在引号中展开*
。