我正在尝试创建一个自动编译脚本,每当我启动计算机时,它都会从源代码编译程序。目前它大致是这样的(我不记得确切的语法):
VAR=$(sudo git pull)
if (VAR = "Nothing to update")
{
#do nothing
}
else {
#compile package
}
这行得通吗?我想知道在 VAR=$ 或 if 语句期间是否调用 sudo git pull 。
答案1
该命令仅在初始命令替换期间被调用,即VAR=$(sudo git pull)
。
您可以轻松测试这一点。
$ VAR=$(touch foo; echo bar)
$ echo $VAR
bar
$ ls -l foo
-rw-r--r-- 1 me me 0 Dec 7 16:28 foo
您可以看到我已经创建了一个文件foo
,并且命令替换 () 的输出bar
已分配给$VAR
.
现在稍等一下,再次访问该变量。
$ echo $VAR
bar
$ ls -l foo
-rw-r--r-- 1 me me 0 Dec 7 16:28 foo
可以看到 的修改时间foo
没有改变。