gpt4 book ai didi

csh - 变量未在 if 语句 CSH 中修改

转载 作者:行者123 更新时间:2023-12-04 08:35:48 27 4
gpt4 key购买 nike

我有以下非常简单的代码:

#!/usr/bin/env csh

set status=0
if ( 0 == 0 ) then
ls ./dummyDir
set status=$?
echo $status
endif
echo $status
问题是 $status 的最后一个 echo 是 0 而第一个设置为退出代码是 2?
为什么会这样?为什么状态在 if 语句中没有被修改。在 bash 中与此相同的等价物完美地工作。

最佳答案

$status$? 的别名;所以它会被 echo 覆盖.您需要使用不同的变量名称:

set ls_status = 0
if ( 0 == 0 ) then
ls ./dummyDir
set ls_status = $?
echo $ls_status
endif
echo $ls_status
输出:
ls: cannot access './dummyDir': No such file or directory
2
2

关于csh - 变量未在 if 语句 CSH 中修改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64809224/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com