nisekoi 大佬有话说 :
请教一个screen相关的命令
本帖最后由 nisekoi 于 2020-3-1 09:25 编辑
我是要在crontab里面定时执行的某个文件。但是因为要先进入某个目录在执行不然那个程序就会读取不到他同目录下的文件。于是加了个cd命令发现也不行。
然后写了个简易版的出来打印路径。发现出现这种现象。
root@instance-71crq4rf:~/logs# cat start.sh
#!/bin/sh
screen -dmS test/bin/bash -c "echo $PWD >> 1.log && cd /root/logs/ && echo $PWD >> 2.log"
这个脚本目录在/root/logs/ 如果在/root/logs/执行这个脚本,会在/root/logs目录正常生成2个log文件,内容都是相同的/root/logs,但是我会在root目录执行这个脚本。它可以正常的在root目录生成一个1.log,内容是/root,也会进入logs目录生成一个2.log。但是内容也是/root ???
luceos 大佬有话说 :
screen -dmS testbash -c "echo $PWD >> 1.log 第一条就进入screen了,可能进入screen后就接收不到后面的命令
beng 大佬有话说 :
>>后面不能直接跟绝对路径吗 >> /root/logs/2.log
nisekoi 大佬有话说 :
beng 大佬有话说 : 2020-3-1 09:13
>>后面不能直接跟绝对路径吗 >> /root/logs/2.log
这是个简易版,真正要运行的程序用绝对路径确实可以执行。但是他会把你执行脚本的路径认为是根目录,于是读取不到任何配置文件。
nisekoi 大佬有话说 :
luceos 大佬有话说 : 2020-3-1 09:13
screen -dmS testbash -c "echo $PWD >> 1.log 第一条就进入screen了,可能进入screen后就接收不到后面的 …
如果在logs目录下执行就能接受到后面echo >> 2.log这是什么原理
带佬 大佬有话说 :
应该是传参的单双引号的问题吧,你改成单引号试试