BASH脚本:如何在启动时在rc.local中使用$HOME变量
我正在执行rc.local中引用的shell脚本。该文件是git版本的,需要更改为每个用户各自的主目录。绝对路径工作正常,但机器之间的路径不同$HOME或~/尚未定义,如何在启动时更改为rc.local中的主用户目录 这是工作脚本: cd/home/username/rightDIR php-S localhost:8000 此脚本启动服务器,但未能事先移动到正确的目录: cd$HOME/rightDIR php-S localhost:8000BASH脚本:如何在启动时在rc.local中使用$HOME变量,bash,autostart,Bash,Autostart,我正在执行rc.local中引用的shell脚本。该文件是git版本的,需要更改为每个用户各自的主目录。绝对路径工作正常,但机器之间的路径不同$HOME或~/尚未定义,如何在启动时更改为rc.local中的主用户目录 这是工作脚本: cd/home/username/rightDIR php-S localhost:8000 此脚本启动服务器,但未能事先移动到正确的目录: cd$HOME/rightDIR php-S localhost:8000 如果只有一个用户的主文件夹中有一个rightDI
如果只有一个用户的主文件夹中有一个
rightDIR
,则cd/home/*/rightDIR&&php-S localhost:8000&
应该可以工作(否则第一个匹配项获胜)
&&
将命令链接在一起。如果cd
命令失败,则之后的命令将不会启动
最后的&
在后台将命令作为shell作业启动,以便shell可以继续并运行rc.local中此行之后的任何命令
如果启动挂起,请考虑添加<代码> NOHUP < /代码>左边的代码> PHP<代码>,以便从shell中分离命令。
你指的是“主用户”?code>$HOME已设置,~
将使用$HOME
的当前值,但它们都将引用root用户的主目录,因为root
是执行rc.local
的用户。我是指一旦机器启动后将登录的用户(例如我自己),因此,也许我应该换一种说法:即使脚本是由root用户执行的,但HOME是不同的,我如何才能将cd放入users目录中。(每个系统上只有一个用户)再说一遍,哪个用户?计算机可以有多个用户,并且在rc点没有一个用户登录。本地
被执行。除了root
,没有任何其他杰出用户的概念。如果有一个特定的非root用户参与启动过程,您必须在脚本中明确说明该用户是谁。一旦启动完成,机器无法猜测谁将登录。非常聪明的解决方法,在我的使用案例中:目标文件夹只存在一次,它工作得非常好!很高兴为您提供帮助:)如果有超过1个这样的文件夹,您也可以遍历all/home/*/rightDIR,检查每个文件夹的内容,甚至为每个文件夹启动一个Web服务器:)