Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/arduino/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将linux变量设置为命令行输出_Linux_Hex_Dd - Fatal编程技术网

将linux变量设置为命令行输出

将linux变量设置为命令行输出,linux,hex,dd,Linux,Hex,Dd,我正在使用QNX修改一些文件,然后输出关于这些文件的一些信息。该过程类似于以下内容: 在目录中查找某些文件 如果名称小于某个值 perfumrdd命令 输出文件-info-staus find $DIR -type n \( ! -iname "*sub*" \) -exec basename {} | while read fname do if [ $(printf '%d\n' 0x$fname) -lt 31 ] #if file is < 31 then

我正在使用QNX修改一些文件,然后输出关于这些文件的一些信息。该过程类似于以下内容: 在目录中查找某些文件 如果名称小于某个值 perfumrdd命令 输出文件-info-staus

find $DIR -type n \( ! -iname "*sub*" \) -exec basename {} |
while read fname
do
    if [ $(printf '%d\n' 0x$fname) -lt 31 ] #if file is < 31
    then 
        dd bs=1 skip=67 count=1 if=/path/$fname/random of=/tmp/$fname
        echo -n " "$fname"      "  #output file name
        TEMP=$(</tmp/$fname)       #temporary file is in 
        hd -A x /tmp/$fname | gawk '{printf $2}'

        if [ $fname == 06 ]; then
            COM="Testing on 06" # this is temporary
        elif [ $fname == 08 ]; then
            case "?? hex value of $2 ?? in
                00) COM="DOWN" ;; #again, not sure what works
                0x01) COM="UP" ;;
                02) COM="Pass Through Mode" ;;
                *) COM="ERROR" ;;
            esac
        else 
            if [[ $STATE = 0x00 ]]; then #doesn't work either
                COM="DOWN"
            elif [ "(hd -A x /tmp/$fname | gawk '{printf $2}')" == 0x01 ]; then
                COM="UP"
            else
                COM="ERROR $STATE "
            fi
        fi

        echo "        " $COM



    fi
done
find$DIR-type n\(!-iname“*sub*”\)-exec basename{}|
读fname时
做
if[$(printf'%d\n'0x$fname)-lt 31]#如果文件小于31
然后
dd bs=1 skip=67 count=1如果=/path/$fname/random of=/tmp/$fname
echo-n“$fname”#输出文件名

TEMP=$(您可以将特定命令发送到stdout的结果存储在变量中,方法是将其括在`引号中:

linecount = `cat text.txt|wc -l`

使用backticks将unix命令的输出捕获到unix变量中,即

   t=`/bin/date`
   echo the time is $t
你也许可以这样做

   firstByte = `dd bs=1 skip=67 count=1 if=/path/$fname/random of=- | hd -A x`
虽然您需要一些额外的参数来
hd
来抑制地址信息(我假设这就是您试图使用
gawk
步骤所做的。我对hd了解不够——请阅读手册页