这只是一小段代码...但是终端给我一个错误“令牌未预期的语法错误”存档“”。
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
答案 0 :(得分:0)
你可以,但你不能声明形式参数。相反,当您调用函数时传递的任何参数都可用作正文中的位置参数$1
,$2
等。
# The parentheses are always empty, to signal a function definition.
# The function keyword is a non-standard extension and should be avoided.
extractProcess () {
archive=$1
...
}
答案 1 :(得分:-1)
不要试图在函数声明中定义它们,而是使用$
参数:
function extractProcess (){
archive=$1
mv $archive $WORK_DIR
pathFile=${archive%/*}