【发布时间】:2018-09-30 07:45:36
【问题描述】:
这只是一小段代码......但终端给我一个错误“令牌附近的语法错误不是预期的”归档“”。
bash中的函数不接受function fun (hello) {之类的参数
function extractProcess (archive){
mv $archive $WORK_DIR
pathFile=${archive%/*} #Path input archive
nameFile=$(ls $WORK_DIR)
name=${archive%.*} #nameFile without exteension
case $nameFile in
*.tar.bz) tar xjf "$WORK_DIR/$nameFile" -C $WORK_DIR ;;
*.tar.bz2) tar xjf "$WORK_DIR/$nameFile" -C $WORK_DIR ;;
*.tar.gz) tar xzf "$WORK_DIR/$nameFile" -C $WORK_DIR ;;
*.bz) bunzip2 "$WORK_DIR/$nameFile" ;;
*.bz2) bunzip2 "$WORK_DIR/$nameFile" ;;
*.gz) gunzip -Ndk "$WORK_DIR/$nameFile" ;;
*.tar) tar xf "$WORK_DIR/$nameFile" -C $WORK_DIR ;;
*.tbz) tar xjf "$WORK_DIR/$nameFile" -C $WORK_DIR ;;
*.tbz2) tar xjf "$WORK_DIR/$nameFile" -C $WORK_DIR ;;
*.tgz) tar xzf "$WORK_DIR/$nameFile" -C $WORK_DIR ;;
*.zip) unzip -qq "$WORK_DIR/$nameFile" -d $WORK_DIR ;;
esac
【问题讨论】:
-
shellcheck 说:“试图声明参数?不要。使用 () 并将参数称为 $1, $2..”
-
shellcheck 的其余警告(其中许多仅在更直接的问题得到解决后才显示)也是相关的。另请参阅Why you shouldn't parse the output of
ls。 -
您的标题是指“输入参数”,但不清楚您所说的那个短语是什么意思。 Bash 没有该术语正式提及的任何内容。