【发布时间】:2016-07-08 11:33:02
【问题描述】:
我正在编写一个小的 shell 脚本,但我的语法不正确。它所做的只是通过使用 rev-parse 检查提交哈希来检查 git 是否是最新的。
所以这个:(git rev-parse HEAD) == $(git rev-parse @{u})
应该告诉我是否需要git pull。如果两者都返回相同的数字,那么我知道提交哈希是相同的,我不需要做任何事情。但现在我试图把它放在一个 shell 脚本中,我遇到了问题。这是我目前所拥有的:
#!/bin/sh
export isNew = (git rev-parse HEAD) -eq $(git rev-parse @{u})
if [$isNew -eq 0]; then
echo "its new"
fi
但我收到以下错误:
$./myscript.sh
./myscript.sh: line 2: syntax error near unexpected token `('
./myscript.sh: line 2: `export isNew = (git rev-parse HEAD) -eq $(git rev-parse @{u})'
【问题讨论】:
-
(git rev-parse HEAD)之前缺少 '$' 是您的第一个问题 -
可以简化为
if [ $(git rev-parse HEAD) == $(git rev-parse @{u}) ]; then。 -
我想将结果存储在一个变量中,你能帮忙吗?
-
-eq是test命令的参数。试试isnew=$(test $(git rev-parse HEAD) -eq $(git rev-parse @{u}))