我正在开发一个简单的基于终端的应用程序,它可以帮助在一个命令中编译你的C/C++和Python源文件。但是当我执行像'erun file‘这样的函数时,它总是输出: ERun: test.py未知的文件扩展名。
在我看来,if语句中的问题。我尝试编辑这些语句,但没有任何更改。以下是我的源代码:
#/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/ :)
发布于 2019-05-16 02:10:34
这太奇怪了
"$n{n%,}"对于ab/program.py,它返回ab/program.py{%n,}。
你可能想要像这样的东西
"${n,,}"相反,这会将所有的大写字母转换为小写。
https://stackoverflow.com/questions/56155285
复制相似问题