我的代码:
#!/bin/bash
rm screenlog.0
screen -X stuff 'X21'$(printf \\r)
while :
do
grep -i "T" $screenlog.0
if [ $? -eq 0 ];
then
FILE=/etc/passwd
VAR=`head -n 1 $FILE`
echo $VAR
rm screenlog.0
break
done
此脚本是删除文件“screenlog.0”向屏幕界面发送命令(X21)。 这是第一部分而且有效。
第二部分是问题: 那应该测试“screenlog.0”的内容,是否有一个带有“T”的东西将内容保存到变量中。
错误:
line 11: syntax error near unexpected token `done'
line 11: `done'
到“屏幕”:它是一个usb设备的屏幕,可以像这样回收无线电信息:
T350B00A66E2
H34D04DE4254
脚本必须在开头用“T”扫描输入的消息(第一个字母是这个十六进制代码后面的Type字段。
要纠正的一些想法或其他解决方案?
我纠正了我的代码:
#!/bin/bash
>screenlog.0
screen -X stuff 'X21'$(printf \\r)
while :
do
sleep 2
grep -i "T" $screenlog.0
if [ $? -eq 0 ];
then
screenlog.0=/etc/passwd
VAR=`head -n 1 $screenlog.0`
echo $VAR
break
fi
done
新错误是:
grep: .0: No such file or directory
全部5秒......
文件screenlog.0存在.. :(
答案 0 :(得分:4)
哦......你在脚本中错过了fi
:)。像语法一样if [ condition ];then #dosomething fi
为您的脚本
if [ $? -eq 0 ];then
FILE=/etc/passwd
VAR=`head -n 1 $FILE`
echo $VAR
rm screenlog.0
break
fi