分页: 1 / 1

[问题]新手请教个小问题。劳你大驾了(已解决,谢谢)

发表于 : 2006-07-14 22:06
l6751902
新手刚开学SHELL


运行说我的第4行(就是这if [-f "$ga" ];then)有错!麻烦告诉我下要怎么改,顺便看下还有那里有错的!



#!/home/kai2/wendan/sh.sh

for ga in $*; do
if [-f "$ga" ];then
gcc $ga -o $ga.cpp

else
echo "error"
fi

done



顺带问下我要的 $ga 是原来就带后缀的,运行gcc $ga -o $ga.cpp之后我 要怎么样才能去掉原后缀换我 想要的.cpp ?望指教

发表于 : 2006-07-14 22:41
eexpress
[]的2边都要空格的。;后面也要的。

发表于 : 2006-07-15 0:38
l6751902

$ga 是原来就带后缀的,运行gcc $ga -o $ga.cpp之后我 要怎么样才能去掉原后缀换成我想要的.cpp ?
这个 要怎么写?

发表于 : 2006-07-15 0:40
eexpress
这个没懂意思。
$ga是一个文件名?
不是gcc xxxx -o xxxx.xxx自己取名的吗
-o file
指定 输出文件 为 file. 该选项 不在乎 GCC 产生 什么 输出, 无论是
可执行文件, 目标文件, 汇编文件 还是 预处理后的 C 代码.

由 于 只能 指定 一个 输出文件, 因此 编译 多个 输入文件 时, 使用
‘-o’ 选项 没有 意义, 除非 输出 一个 可执行文件.

如果 没有 使用 ‘-o’ 选项, 默认的 输出 结果 是: 可执行 文 件 为
‘a.out’, ‘source.suffix’ 的 目标文件 是‘source.o’, 汇编文件 是
‘source.s’, 而 预处理后的 C 源代码 送往 标准输出.

发表于 : 2006-07-15 13:34
l6751902
就是运行 ./shell file.c 用我也的那个生成的是 file.c.cpp 要怎么样才是生成 file.cpp

发表于 : 2006-07-16 1:35
laborer

代码: 全选

gcc "$ga" -o "${ga%.*}.cpp"
下面这个是搞笑的

代码: 全选

gcc "$ga" -o "${ga}pp"