c shell 脚本来检查 Git 是否在系统中可用
c shell script to check if Git is available in the system
我目前正在创建一个脚本来对我们的软件框架的文件进行一些操作。现在我们已经移动到 Git,此脚本需要设置一些功能(即:忽略某些文件的本地更改)。
所以我在考虑这个 C shell 脚本来检查系统中是否安装了 Git,然后再执行某些 Git 操作以与其他系统向后兼容而无需 Git已安装。
我正在考虑使用 which
或 whereis
,但我似乎无法将其与 C shell if()
语句集成。
我不是普通的 csh
用户,但是 man csh
说需要在执行命令后检查 status
变量的值,因为它包含 return最后一个命令的值:
status The status returned by the last command. If it terminated
abnormally, then 0200 is added to the status. Built-in
commands that fail return exit status 1, all other
built-in commands set status to 0.
例如:
$ csh
% which git
/usr/bin/git
% echo $status
0
% which non-existing-command
non-existing-command: Command not found.
% echo $status
1
%
知道写一个if
条件很容易:
#!/usr/bin/env csh
which git > /dev/null
if ($status == 0) then
echo git found
else
echo git not found. Exiting.
exit 1
endif
如果您真的需要 csh,这行得通:
if ( -x `which git` ) then
... what to do if it can be run ...
else
... what to do if it cannot
endif
-x
测试检查给定路径是否可执行,反引号 运行 which
查找路径(或打印 git: command not found
,这不会可执行)。
与 一样,如果您正在使用 tcsh(或者有一个实际上只是 tcsh 的 csh,例如在现代 Mac 和 FreeBSD 上就是这种情况),您可以只使用:
if ( -X git ) then ...
不过,如果你有一个理智的 shell,你会过得更好。
我目前正在创建一个脚本来对我们的软件框架的文件进行一些操作。现在我们已经移动到 Git,此脚本需要设置一些功能(即:忽略某些文件的本地更改)。
所以我在考虑这个 C shell 脚本来检查系统中是否安装了 Git,然后再执行某些 Git 操作以与其他系统向后兼容而无需 Git已安装。
我正在考虑使用 which
或 whereis
,但我似乎无法将其与 C shell if()
语句集成。
我不是普通的 csh
用户,但是 man csh
说需要在执行命令后检查 status
变量的值,因为它包含 return最后一个命令的值:
status The status returned by the last command. If it terminated
abnormally, then 0200 is added to the status. Built-in
commands that fail return exit status 1, all other
built-in commands set status to 0.
例如:
$ csh
% which git
/usr/bin/git
% echo $status
0
% which non-existing-command
non-existing-command: Command not found.
% echo $status
1
%
知道写一个if
条件很容易:
#!/usr/bin/env csh
which git > /dev/null
if ($status == 0) then
echo git found
else
echo git not found. Exiting.
exit 1
endif
如果您真的需要 csh,这行得通:
if ( -x `which git` ) then
... what to do if it can be run ...
else
... what to do if it cannot
endif
-x
测试检查给定路径是否可执行,反引号 运行 which
查找路径(或打印 git: command not found
,这不会可执行)。
与
if ( -X git ) then ...
不过,如果你有一个理智的 shell,你会过得更好。