script.sh:源:未找到

script.sh:源:未找到

我对 rc.local 有疑问。我创建了一个脚本自动启动其中包括:

#!/bin/sh
cd $home
source /opt/ros/indigo/setup.bash 
xterm -hold -e "/opt/ros/indigo/bin/roscore" &
xterm -hold -e "/opt/ros/indigo/bin/roslaunch rosbridge_server rosbridge_websocket.launch"
exit 0

我的目的是使用 rc.local 自动运行该脚本。rc.local 文件位于:

/etc/init.d/rc.local

rc.本地文件包含代码:

#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.

sudo ./auto.sh
sh '/home/moguztas/auto.sh'

exit 0

此代码是可执行的。我按照以下步骤操作我怎样才能让“rc.local”在启动时运行?

但是当我使用以下命令检查代码时:

sudo /etc/init.d/rc.local start

它在终端中出现如下所示的错误:

./auto.sh: 4: ./auto.sh: source: not found

此外,XTerm 终端还会出现如下错误: 错误1 错误2

你能告诉我我的问题是什么吗?

答案1

  1. 您正在调用/bin/sh,在 Ubuntu 上,它是一个比 简单得多的 shell /bin/bash,并且缺少source命令。

  2. rc.local运行时是否/opt/ros/indigo/挂载?如果它是您的加密HOME目录,则在您登录之前它将不存在。

  3. 在运行时rc.local,X 服务器尚未启动,因此运行将xterm不起作用。

相关内容