我是bash脚本的新手,并且要制作剧本
目标:恢复2个名称(1 - logfilename 2-程序名称)程序应该编译程序
并将两个输出发送到日志
如果成功则写入"编译V"并返回0,否则编译X并返回数字
我试过
#!/bin/bash
gcc {$2}.c -Wall -g -o $2> $1 2>&1
exit
并且我不知道如何检查它是否成功以及回显V或X
编辑: 对你们来说,我得到了这个
#!/bin/bash
gcc {$2}.c -Wall -g -o ${2}>${1} 2>&1
if (($?==0));then
echo Compile V
[else
echo compile X]
fi
exit
但是所有if部分仍无法正常工作......
答案 0 :(得分:1)
您可以像这样检查退出状态gcc
:
#!/bin/bash
# execute gcc command
gcc "$2".c -Wall -g -o "$2"> "$1" 2>&1
# grab exit status of gcc
ret=$?
# write appropriate message as per return status value
((ret == 0)) && echo "compile V" || echo "compile X"
# return the exit status of gcc
exit $ret
答案 1 :(得分:0)
如果$?
= 0,则可以通过命令echo $?
检查bash中程序是否成功,然后成功则失败。
答案 2 :(得分:0)
此代码应该有效:
#!/bin/bash
gcc -v ${2}.c -Wall -g -o ${2}>${1} 2>&1
exit
答案 3 :(得分:0)
试试这个:
#!/bin/bash
gcc "$2"".c" -Wall -g -o "$2" 2>&1 >"$1"
#check for error of previous command
if $? ; then echo compile V >>"$1"
else echo compile X >>"$1"; fi
exit