这是一个缩短版本的脚本,用于从带有自动加载器(最多只有10个磁带)的EXB-8500读取8mm磁带。它包含在磁带数据(直接二进制)中,并将其保存到我们的主存储器和备份中以磁带的4位数字(例如D1002.dat)命名的文件中。在此期间,它记录了信息并在终端中显示其状态,以便我们可以看到它有多远。
angular.module('appModule',[]);
angular.module('appModule')
.directive('categoryEdit', function($compile) {
return{
restrict: 'A',
priority: 1001,
compile: function(element){
var categoryEdit = $ionicHistory.backView() ? false : true;
element.attr('ng-show', categoryEdit);
return function(scope,element){
var fn=$compile(element, null, 1);
fn(scope);
};
}
}
})
在我们达到1000以下(startig at 0999)之前,一切都很艰难。错误代码为#!/bin/bash
echo "Please enter number of tapes: [int]"
read i
j=1
until [ $i -lt $j ]
do
echo "What is the number of tape $j ?"
read Tape_$j
(( j += 1 ))
done
echo "Load tapes into the tower and press return when the drive is ready"
read a
j=1
until [ $i -lt $j ]
do
k="Tape_$j"
echo "tower1 $j D$(($k)) `date` Begin"
BEG=$j" "D$(($k))" "`date`" ""Begin"
echo "tower1 $j D$(($k)) `date` End"
END=$j" "D$(($k))" "`date`" ""End"
echo "$BEG $END"
echo "$BEG $END"
sleep 2
(( j += 1 ))
done
echo "tower1 done"
。现在我已经意识到这是因为当我输入前导0时脚本强制八进制值,我知道我应该在脚本中的某处插入一个./tower1: 0999: Value too great for base (error token is "0999")
,但问题是:哪里?
还有一种方法可以将10#
定义为字符串吗?我觉得这样可以解决很多这些问题
要获取错误,请运行脚本,定义所需的多个磁带(至少一个,lol),并将前导0插入磁带名称
实施例
Tape_$j
答案 0 :(得分:1)
您不希望将$ k用作数字,而是使用字符串。您使用数值表达式将变量值计算为变量名称。这是非常糟糕的做法。
幸运的是,你可以在bash中使用变量间接来实现你的目标。没有涉及数字,没有错误抛出。
echo "tower1 $j ${!k} `date` Begin"
BEG=$j" "D${!k}" "`date`" ""Begin"
在其他地方同样如此。