首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Shell脚本中传递'If语句‘的问题

Shell脚本中传递'If语句‘的问题
EN

Stack Overflow用户
提问于 2019-05-16 02:07:45
回答 1查看 35关注 0票数 0

我正在开发一个简单的基于终端的应用程序,它可以帮助在一个命令中编译你的C/C++和Python源文件。但是当我执行像'erun file‘这样的函数时,它总是输出: ERun: test.py未知的文件扩展名。

在我看来,if语句中的问题。我尝试编辑这些语句,但没有任何更改。以下是我的源代码:

代码语言:javascript
运行
复制
#/bin/bash
# function ERun for C/C++ and python
# version 1.0

SAVEIFS=$IFS
IFS=$(echo -en "\n\b")

function erun {
    if [ -z "$1" ]; then
        #display usage if no paramters given
        echo "Usage: erun file.c/.cpp/.py"
        echo "Run: ./file"
    else
        for n in "$@"
        do
            if [ -f "$n" ] ; then
                case "$n{n%,}" in
                    *.py)
                    chmod +x "$n"       ;;
                    *.c|*.cpp)
                    gcc "$n" -o "$n"    ;;
                    *)
                    echo "ERun: '$n' unknown file extension"

                    return 1
                    ;;        
            esac
        else
            echo "'$n' - file does not exist."
            return 1
        fi
    done
 fi
}

IFS=$SAVEIFS

我期望的输出是获得一个可执行文件。如果你能帮我,我会很高兴的。顺便说一句,如果你想贡献我的这个小项目,这里是项目链接:https://github.com/lvntky/ERun/ :)

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-05-16 02:10:34

这太奇怪了

代码语言:javascript
运行
复制
"$n{n%,}"

对于ab/program.py,它返回ab/program.py{%n,}

你可能想要像这样的东西

代码语言:javascript
运行
复制
"${n,,}"

相反,这会将所有的大写字母转换为小写。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56155285

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档