gpt4 book ai didi

linux - Bash脚本多个命令问题

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:24:15 25 4
gpt4 key购买 nike

我目前正在开发一个程序,该程序需要在注册该程序尚未打开时自动启动该程序。它需要 super 用户权限才能启动。目前,我有一个有效的 Bash 脚本,如下所示:

#!/bin/bash

while true; do #Continue indefinitely

if [ $(ps aux | grep '/odroid_detection' | grep -v '<defunct>' -c) -le 4 ]; then #if less than 3 odroid_servers are active (booter opens 3 processes)
xterm -iconic -e su -c "xterm -iconic -hold /home/odroid/Documents/SUNRISE-Odroid/_odroid_detection/_odroid_detection/bin/Debug/_odroid_detection"
fi

sleep 60 #check every minute

done

然而,执行的程序并没有完全按计划工作,因为它是从根映射而不是它所在的映射执行的。因此我想 cd 到可执行文件所在的映射 (~/Documents/SUNRISE -Odroid/_odroid_detection/_odroid_detection/bin/Debug) 但具有与上述相同的功能。这是我想出的:

#!/bin/bash

while true; do #Continue indefinitely

if [ $(ps aux | grep '/odroid_detection' | grep -v '<defunct>' -c) -le 4 ]; then #if less than 3 odroid_servers are active (booter opens 3 processes)
xterm -iconic -e "cd ../_odroid_detection/_odroid_detection/bin/Debug/ && su -c "xterm -iconic -hold -e _odroid_detection""
fi

sleep 60 #check every minute

done

然而,这不起作用,我尝试了很多替代方法,但我似乎无法让它工作。它在终端中给出以下错误:

xterm: Can't execvp cd ../_odroid_detection/_odroid_detection/bin/Debug && su -c xterm: No such file or directory

出现这个错误的xterm在map~/Documents/SUNRISE-Odroid/Bash中打开,单独执行上面提到的cd确实有效,所以我不明白为什么找不到文件或目录.

有什么建议吗?

最佳答案

StackOverflow 的颜色让我明白了我犯的一个错误:'su -c' 之后的起始引号被解释为 xterm 执行行的结束引号。工作代码如下:

#!/bin/bash

while true; do #Continue indefinitely

if [ $(ps aux | grep '/odroid_detection' | grep -v '<defunct>' -c) -le 2 ]; then #if less than 3 odroid_servers are active (booter opens 3 processes)
xterm -iconic -e "cd ../_odroid_detection/_odroid_detection/bin/Debug/ && su -c ./_odroid_detection"
fi

sleep 60 #check every minute

done

关于linux - Bash脚本多个命令问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37963150/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com