比较来自世界各地的卖家的域名和 IT 服务价格

支付 bash 表达与变量 /cygwin/

我正在尝试计算两个标签之间的差异 unix. 支付 42-23 仅设计用于测试目的。


# !/bin/bash
TARGET=1305281500
CURRENT=`date +%s`
echo $TARGET
echo $CURRENT
A=`expr 42 - 23`
B=`expr $TARGET - $CURRENT`
echo "A: $A"
echo "B: $B"


出口:


1305281500
1305281554
expr: non-integer argument
A: 19
B:


从另一个变量中减去一个变量是什么? 脚本正在努力 unix maschine. 我用 Cygwin 在 Windows 7:


$ uname -a
CYGWIN_NT-6.1-WOW64 mypcname 1.7.9/0.237/5/3/ 2011-03-29 10:10 i686 Cygwin

$ bash --version
GNU bash, version 4.1.10/4/-release /i686-pc-cygwin/
已邀请:

喜特乐

赞同来自:

问题是我写了一个脚本 Windows 使用其系统字符串结束
\r\n

. 移动到弦后 Unix, 结尾
\n

, 她工作。

诸葛浮云

赞同来自:

你不需要打电话
expr

为此,实际上只是使用该功能。 bash
$// expr //

. 在我的 cygwin 此代码正常工作:


# !/bin/bash
TARGET=1305281500
CURRENT=`date +%s`
echo $TARGET
echo $CURRENT
B=$//CURRENT - TARGET//
echo "B: $B"
# For validation only
echo "$TARGET $CURRENT" | awk '{print /$2-$1/}'


它给出了这个结果:


B: 8316
8316

奔跑吧少年

赞同来自:

为什么不使用 $[] ?

TARGET=1305281500
CURRENT=1305281554
A=$[42 - 23]
B=$[$TARGET - $CURRENT]
echo "A: $A"
echo "B: $B"


出口:

A: 19
B: -54

窦买办

赞同来自:

我在这里看不见这个问题 Linux. 但是你使用字符串得到正确的答案吗?


B=`expr $TARGET - $CURRENT`


取而代之


B=`eval expr $TARGET - $CURRENT`

要回复问题请先登录注册