#!/bin/bash #set -xv time=`date +%Y%m%d`_`date +%H%M%S` date=`date +%Y%m%d` mkdir -p /home/holo/GH05/APK/${date} #创建日期命名的文件夹 adb shell mkdir -p /data/screenrecord #在车机中创建录屏的临时文件夹 if [ "r" == "${1}" ] #参数为开始录屏 then while true ; do adb shell screenrecord /data/screenrecord/screenrecord_${time}.mp4; sleep 180 done; echo ${time}, 开始录屏 elif [[ "k" == "${1}" ]] #参数为kill录包进程 then #kill screenrecord pid_pro7=`ps -aux | grep screenrecord | grep -v grep | awk '{printf " " $2}'` if [[ ! -n $pid_pro7 ]]; then echo 后台无screenrecord进程可杀 else echo 正在杀掉screenrecord进程... kill $pid_pro7 sleep 1 pid_pro8=`ps -aux | grep screenrecord | grep -v grep | awk '{printf " " $2}'` if [[ ! -n $pid_pro8 ]]; then echo 后台screenrecord进程第1次就被干掉了 else sleep 1.5 kill -9 $pid_pro8 echo 后台screenrecord进程第2次才被干掉的 fi fi elif [[ "h" == "${1}" ]] #参数为录制算力数据 then adb shell top -d 1 -b | grep holo >/home/holo/GH05/APK/"$(date +"%Y%m%d")"/hashrate/TextData.txt else echo "input error." return 1; fi 这个会报错吗?
时间: 2024-02-14 20:22:08 浏览: 23
这段代码看起来没有语法错误,但它可能会因为一些其他因素而导致运行时错误。例如,如果脚本中使用的命令在系统中不存在,或者执行时没有足够的权限,就会导致错误。另外,如果输入的参数不是 "r"、"k" 或 "h",那么它也会返回 "input error."。你需要在运行脚本之前确保你具有足够的权限,并且输入的参数是正确的。
相关问题
-bash: =date +%Y-%m-%d: command not found
抱歉,我之前给出的命令存在错误。在 Bash 中正确的方式应该是使用反引号或 `$()` 来执行命令的输出。请尝试以下命令来显示当前日期:
```bash
echo $(date +"%Y-%m-%d")
```
或者:
```bash
echo `date +"%Y-%m-%d"`
```
这两种写法都会执行 `date +"%Y-%m-%d"` 命令,并将其输出作为参数传递给 `echo` 命令,从而显示当前日期。希望这次能够正确显示日期。
#!/bin/sh #!/bin/bash #!/bin/ksh 用哪个比较好
在选择使用哪个shell时,需要考虑以下几个因素:
1. 兼容性:`#!/bin/sh`是最通用的shell,几乎所有的Unix/Linux系统都有sh。而`#!/bin/bash`和`#!/bin/ksh`则需要在系统中安装bash或ksh才能使用。如果需要编写可移植的脚本,建议使用`#!/bin/sh`。
2. 功能:bash和ksh都比sh功能更强大,支持更多的特性和语法。如果需要使用更高级的特性,建议使用bash或ksh。
3. 性能:ksh比bash和sh更快,但差别不是很大。如果需要执行大量的脚本或需要更高的性能,建议使用ksh。
综上所述,选择使用哪个shell取决于你的具体需求。如果需要编写可移植的脚本,建议使用`#!/bin/sh`;如果需要使用更高级的特性,建议使用bash或ksh;如果需要更高的性能,建议使用ksh。