function checkProcessIsRunning { local pid="$1" ps -ef | grep java | grep $pid | grep "$KEYWORD" | grep -q --binary -F java if [ $? -ne 0 ]; then return 1; fi return 0; } 这脚本内容启动时报错未预期的符号 `$'{\r'' 附近有语法错误 怎么修复
时间: 2024-03-09 12:49:56 浏览: 16
这个错误通常是因为脚本文件的换行符不兼容所导致的,可能是在 Windows 操作系统上编写的脚本在 Linux 或 macOS 上运行时出现的问题。
可以使用 dos2unix 命令将脚本文件转换为 Unix 格式的换行符,以解决这个问题。在 Linux 或 macOS 上,可以使用以下命令转换脚本文件:
```
dos2unix your_script.sh
```
其中 `your_script.sh` 是你的脚本文件名。
如果没有安装 dos2unix 命令,可以使用以下命令进行安装:
```
sudo apt-get install dos2unix
```
或
```
sudo yum install dos2unix
```
安装完成后再执行转换命令即可。
相关问题
cat /proc/`ps -ef|grep andlink_router | grep -v grep | awk '{print $2}'`/status | grep -E 'VmRSS|VmHWM' ps: unrecognized option: e BusyBox v1.25.1 () multi-call binary. Usage: ps Show list of processes w Wide output cat: can't open '/proc//status': No such file or directory,这种报错怎么解决
这种报错通常是由于您的命令中使用了一些特定于Linux系统的功能,而您正在尝试在不支持这些功能的系统上运行该命令。根据您的报错信息,我猜测您正在尝试在一个 BusyBox 系统上运行该命令,而该命令的参数可能不被 BusyBox 所支持。
要解决这个问题,您可以尝试使用 BusyBox 支持的 ps 命令来代替原始的 ps 命令。具体来说,您可以尝试以下命令:
```
busybox ps -w | grep andlink_router | grep -v grep | awk '{print $1}'
```
这将使用 BusyBox 的 ps 命令来查找包含 "andlink_router" 字符串的进程,并使用 awk 命令提取进程 ID。然后,您可以将其用于您的原始命令,如下所示:
```
cat /proc/$(busybox ps -w | grep andlink_router | grep -v grep | awk '{print $1}')/status | grep -E 'VmRSS|VmHWM'
```
这应该可以正常工作,并提供您所需的输出。
我对某个文件使用cat xxx.txt | grep -i "defconfig" 结果出现 binary file (standard input) matches
这个错误提示通常出现在你尝试在二进制文件上执行 grep 命令的时候。因为二进制文件不是文本文件,它可能没有包含你想要查找的字符串,所以 grep 命令会提示没有匹配项。如果你想要查找一个文本文件中的字符串,你可以尝试直接使用 grep 命令来查找,例如:
```
grep -i "defconfig" xxx.txt
```
这样应该就可以在 xxx.txt 文件中查找到所有包含 "defconfig" 字符串的行了。