首页 > 解决方案 > bash 脚本中的“`$@': not a valid identifier”错误

问题描述

我正在开发一个允许用户在命令提示符中输入文件名的 shell 脚本,该脚本将定位可执行文件并确定它们是否可以被执行。但是,当我尝试运行它时,我收到“第 45 行 `$@': not a valid identifier”错误消息。

这是我的第一个脚本,无法弄清楚如何解决这个错误。我希望脚本的其余部分没问题,但我无法克服这个错误来测试它。

任何帮助是极大的赞赏!

#!/bin/bash

FINDALL=FALSE

while :

    do
        case $1 in
            -a) FINDALL=TRUE
                shift ;;
            -h) echo “Usage $0 [-a] commands…”
                exit 0 ;;
            *)  break ;;
        esac
    done


for $@ in $file

    do
        case $file in
            */*)    if [ -x “$file” ]
                    then
                    echo $file

                    elif [ -d “$file” ]
                        then
                        echo $file is NOT found
                    fi
                    shift ;;

            *)  FOUND=FALSE ;;
        esac
    done


case $PATH in
    :*) PATH=”.:$PATH” ;;

    *::*)   PATH=`echo $PATH | sed -e ‘s/::/:.:/g’` ;;

    *:) PATH=”$PATH:.” ;;
esac


command=”$1”

IFS=$OLDIFS
IFS=:
set -- $PATH
IFS=$OLDIFS

case $command in
    */*)    echo $command ;;
    *)  FOUND=FALSE

        for P
            do
                if [ ! -d “$P/$command” -a -x “$P/$command” ]
                    then
                    FOUND=TRUE
                    echo $command
                    break
                    fi  
            done

        if [ “$FOUND” = FALSE ]
            then
            echo “Command $command not found in your search path”
        fi ;;
esac

标签: bashshell

解决方案


推荐阅读