我正在尝试编写一个bash shell脚本,该脚本在用户定义的时间内消耗嵌入式设备上的大量RAM。不使用数组怎么办?
即使不支持传统的Bash数组,也仍然可以使用eval
特定Shell中内置的命令来创建类似数组的变量。
以下示例脚本基于我在嵌入式Linux项目中使用BusyBox时执行的一些脚本。
BusyBox使用Almquist
Shell
(也称为A Shell,ash和sh),它不支持数组。
#!/bin/ash
for index in 1 2 3 4 5; do
value=$(($index * 1024))
eval array$index=\"array[$index]: $value\"
done
for i in 1 3 5; do
eval echo \$array$i
done
使用时请小心报价eval
!
输出:
array[1]: 1024
array[3]: 3072
array[5]: 5120
根据您的特定情况,类似于以下内容的脚本可能就足够了。
#!/bin/ash
echo "Provide sleep time in the form of NUMBER[SUFFIX]"
echo " SUFFIX may be 's' for seconds (default), 'm' for minutes,"
echo " 'h' for hours, or 'd' for days."
read -p "> " delay
echo "begin allocating memory..."
for index in $(seq 1000); do
value=$(seq -w -s '' $index $(($index + 100000)))
eval array$index=$value
done
echo "...end allocating memory"
echo "sleeping for $delay"
sleep $delay
在我的简短测试中,此脚本在指定的5分钟时间段内消耗了约570M至〜575M的物理内存*。
*在单独的测试中使用top和memprof程序进行监视
问题内容: 我今天才开始学习Python。我一直在阅读Byte Python。现在,我有一个涉及时间的Python项目。我在Byte of Python中找不到任何与时间有关的东西,所以我问你: 如何在用户指定的时间内运行块然后中断? 例如(用一些伪代码): 甚至更好: 问题答案: 我建议生成另一个线程,使其成为守护程序线程,然后休眠直到您希望任务终止。例如: 当所有非守护程序线程都退出时,Pyt
拉斯宾(杰西)-root@RaspberryPi-腻子 在我输入的终端中 现在我得到了一个包含此代码的脚本 有一个cronjob每小时启动一次这个脚本 苏。一定有什么地方出错了。因为他将变量$finalanswer解读为nothing。 这意味着在此脚本之外定义的变量将不起作用? 我该如何解决这个问题?
变量定义 nsi脚本的变量定义用Var关键字,后跟变量名,变量是全局的并且是大小写敏感的。变量引用时需要加上前缀$。 除了用户自定义的变量外,nsi脚本中与定义寄存器变量$0~$9,$R0~$R9用于参数传递,以及系统变量用于特定用途,这些变量主要有: $INSTDIR,$OUTDIR,$CMDLINE,$LANGUAGE(这些变量都是可写的)。 $PROGRAMFILES,$COMMONFILE
编写HTTP/1.1和HTTP/2.0脚本 有时,我们希望编写一个快速的脚本而不会遇到创建类的麻烦。addons机制具有一种速记方式,可以将模块作为一个整体视为一个addon对象。这使我们可以将事件处理程序函数放在模块作用域中。例如,下面是一个完整的脚本,它向每个请求添加标头。 def request(flow): flow.request.headers["myheader"] = "v
当 Gradle 执行一个脚本时,它会将这个脚本编译为实现了 Script 的类. 也就是说所有的属性和方法都是在 Script 接口中声明的,由于你的脚本实现了 Script 接口,所以你可以在自己的脚本中使用它们.
我正在使用TestNG框架编写一个selenium脚本。我已经将显式等待定义为在selenium抛出NoSuchElement异常之前的20秒。但脚本在执行过程中没有等待20秒,并在41毫秒内抛出异常。我希望这个脚本在抛出任何异常之前等待(使用显式的wait only)或搜索web元素20秒。 下面是脚本,后面是执行结果。