27,if

语法:

if commands; then

    commands

[elif commands; then

    commands...]

[else

    commands]

fi

命令执行之后,会返回0~255整数,0表示成功,其他表示失败。

echo $?

有趣的命令,true,总是返回0,表示成功,false总是返回1,表示失败。

如果if后面跟着一串命令,那么以最后一个命令为准,例如:

if false; true; then echo "It's true."; fi

测试

两种形式:

test expression   // 如果expression是true,test返回0,如果expression是false,test返回1

[ expression ]

1,文件表达式

2,字符串

注:>和<在使用的时候,必须加上引号或者反斜线,否则shell会当做重定向符号解读。

3,整数

 

最新的测试方法

[[ expression ]]

The [[ ]]命令类似于test,但是支持新的运算,string1 =~ regex。如果string1被扩展的正则表达式regex匹配上,返回true。

[[  ]] 还支持模式匹配,类似于路径扩展,例如:

if [[ $FILE == foo.* ]]; then

 

(( ))为整数而设计,用于执行算术真测试。例如:

if ((1)); then echo "It is true."; fi

if [ "$INT" -eq 0 ];  等价  if ((INT == 0));
if [ "$INT" -lt 0 ];  等价  if ((INT < 0));
if [ $((INT % 2)) -eq 0 ]; 等价于  if (( ((INT % 2)) == 0));

test测试使用的所有表达式和操作符都被shell当做命令行参数。

逻辑运算

控制操作符

&&(AND),||(OR),可以控制命令是否执行。

command1 && command2  只有command1成功才执行command2

command1 || command2     只有command1失败才执行command2

 

Dim arrStim(140), Typecount(3),arrtmp(28) As Integer Dim i, k, flag As Integer Dim bools As Boolean For i = 1 To UBound(arrtmp) If i<21 Then k=1 arrtmp(i)=k Else If i<25 Then k=2 arrtmp(i)=k Else k=3 arrtmp(i)=k End If End If Next For i=1 To 5 Do bools=True RandomizeArray arrtmp,1,UBound(arrtmp) If i<>1 And i<>5 Then If arrtmp(1)=2 Or arrtmp(1)=3 Then If arrtmp(1)=flag Then bools=False Else For k=1 To 27 If arrtmp(k)=2 Or arrtmp(k)=3 Then If arrtmp(k)=arrtmp(k+1) Then bools=False Exit For End If End If Next End If Else For k=1 To 27 If arrtmp(k)=2 Or arrtmp(k)=3 Then If arrtmp(k)=arrtmp(k+1) Then bools=False Exit For End If End If Next End If ElseIf i=1 Then If arrtmp(1)=2 Or arrtmp(1)=3 Or arrtmp(2)=2 Or arrtmp(2)=3 Then bools=False Else For k=1 To 27 If arrtmp(k)=2 Or arrtmp(k)=3 Then If arrtmp(k)=arrtmp(k+1) Then bools=False Exit For End If End If Next End If ElseIf i=5 Then If arrtmp(27)=2 Or arrtmp(27)=3 Or arrtmp(28)=2 Or arrtmp(28)=3 Then bools=False ElseIf arrtmp(1)=2 Or arrtmp(1)=3 Then If arrtmp(1)=flag Then bools=False Else For k=1 To 27 If arrtmp(k)=2 Or arrtmp(k)=3 Then If arrtmp(k)=arrtmp(k+1) Then bools=False Exit For End If End If Next End If Else For k=1 To 27 If arrtmp(k)=2 Or arrtmp(k)=3 Then If arrtmp(k)=arrtmp(k+1) Then bools=False Exit For End If End If Next End If End If Loop Until bools=True For k=1 To 28 arrStim((i-1)*28+k)=arrtmp(k) Next flag=arrtmp(28) Next For i=1 To UBound(arrStim) TrialList.SetNested CStr(i), "list" & arrStim(i) Next TrialList.Reset 要求:有三种实验材料,A材料100个、BC材料各20个。BC不能呈现在首尾的前后两个刺激上。BC同种材料不能重复呈现,BC可以挨着呈现。对A材料不反应,反应位错;对B材料按“f”键进行反应,C材料按“j”键进行反应。实验过程为:注视点800毫秒→刺激界面(无限时间) →反馈界面。设计要求: 1)请用“化整为零+随机打乱判断”法进行设计。 对以上编码进行修改
05-29
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值