当前位置: 技术问答>linux和unix
弱弱的问,C语言中的&&在bash中怎么表达的不对啊。
来源: 互联网 发布时间:2016-11-25
本文导语: 我下面的代码表示的是,如果num1不等于0,并且num2也不等于0,就走到if里面去执行. 这里的num1和num2是我的一个变量. 运行的时候报错说,-ne command not found. 我的源码很少,就下面一点.大家看看怎么回事啊. 谢谢了. 报错保...
我下面的代码表示的是,如果num1不等于0,并且num2也不等于0,就走到if里面去执行.
这里的num1和num2是我的一个变量.
运行的时候报错说,-ne command not found.
我的源码很少,就下面一点.大家看看怎么回事啊.
谢谢了.
报错保证这一行上:if [ `(${num1} -ne 0) && (${num2} -ne 0)` ]
这里的num1和num2是我的一个变量.
运行的时候报错说,-ne command not found.
我的源码很少,就下面一点.大家看看怎么回事啊.
谢谢了.
报错保证这一行上:if [ `(${num1} -ne 0) && (${num2} -ne 0)` ]
#!/bin/bash
#linenum=`wc -l log_file_new.log | awk '{print $1}'`
sed -n "/^>>> config */=" log_file_new.log > numfile
#cat numfile
filelist=`cat "numfile"`
echo $filelist
for filename in $filelist
do
if [ `num1==0` ]
then
num1=$filename
else
num2=`expr ${filename} - 1`
fi
if [ `(${num1} -ne 0) && (${num2} -ne 0)` ]
then
sed -n "${num1},${num2}p" log_file_new.log > log_file_new_$filename.log
$num1=$num2
$num2=0
fi
donefi
|
if [ `num1==0` ]
改成
if [ "$num1" == 0 ]
----------------------------------
if [ `(${num1} -ne 0) && (${num2} -ne 0)` ]
变成
if [ "${num1}" != 0 -a "${num2}" != 0 ]
或者
if [ "${num1}" != 0 ] && [ "${num2}" != 0 ]
---------------------------------------
$num1=$num2
改成
num1=$num2
----------------------------
donefi
改成
done
fi
改成
if [ "$num1" == 0 ]
----------------------------------
if [ `(${num1} -ne 0) && (${num2} -ne 0)` ]
变成
if [ "${num1}" != 0 -a "${num2}" != 0 ]
或者
if [ "${num1}" != 0 ] && [ "${num2}" != 0 ]
---------------------------------------
$num1=$num2
改成
num1=$num2
----------------------------
donefi
改成
done
fi
|
这几种方式应该都行
if (( n1 != 0 && n2 != 0 ))
if [[ n1 -ne 0 && n2 -ne 0 ]]
if [[ n1 != 0 && n2 != 0 ]]
if [ $n1 -ne 0 -a $n2 -ne 0 ]
if (( n1 != 0 && n2 != 0 ))
if [[ n1 -ne 0 && n2 -ne 0 ]]
if [[ n1 != 0 && n2 != 0 ]]
if [ $n1 -ne 0 -a $n2 -ne 0 ]
|
最后一种最好别用 一旦前面的代码没有得到值 变量可能为空 这句就会报错
谢谢高手.我是个linux的新手,不太懂,之前都是写C语言的.
---------------
不同的东西 语法不一样很正常 建议你看一个bash脚本的教程 很不错http://www.linuxsir.org/main/doc/abs/abs3.7cnhtm/index.html
|
看样子是这句报的错误
sed -n "${num1},${num2}p" log_file_new.log > log_file_new_$filename.log
你是什么系统 在我这里这样的用法是ok的哦 另外保证num1和num2都不为空 ,是英文状态的
sed -n "${num1},${num2}p" log_file_new.log > log_file_new_$filename.log
你是什么系统 在我这里这样的用法是ok的哦 另外保证num1和num2都不为空 ,是英文状态的