你好呀
我设置了自定义的脚本
直接执行脚本是可以同步的
但是通过工具就不行,可以帮我看下是什么问题?
push.sh脚本
@Ling Sun, 试一下完全的路径? 而不是 ./ 这样的相对路径。
@Ling Sun, 以及应该是 /bin/sh full_script_path 的方式, MarkEditor 对于脚本文件的调用,是没有系统 Env 的判断的。想象有点像 Linux 上的 crontab
我试了下完全路径,是不行。 请问”应该是 /bin/sh full_script_path 的方式” 是什么意思呢?
@Ling Sun, 就是在全路径之前加上 /bin/sh
虽然没有报错了,但是还是不能同步,好奇怪!
@Ling Sun, 或许你在 push.sh 内的 git 也要有完整的路径。
另外,在 push.sh 内的 cd,是否会影响到 『调用的再调用』 的上下文环境,我也不确定。
cd 当前的ME工作目录 && /bin/sh xxxxxx.sh,或许能解决这个问题,因为 ME 在调用脚本的时候,会尝试改变当前的上下文目录。
简单的来说,就是在这个时候的调用,不要对任何系统环境有依赖,比如我们输入 git,实际上对应的路径是 which git, 这些都是系统依赖;包括 cd 这样的命令也都是。
@Ling Sun, 你这个只是 git 的同步,可以参考 https://we.markeditor.com/post/how-to-use-the-custom-cloud#main
这里的命令, ME 内是有特殊的自动补全的。但是除此之外的,必须自己不要有任何系统环境的依赖。
1. 同步到:
/bin/sh /Users/sunling/MyRepos/Readings/push.sh
2. 同步自:
/bin/sh /Users/sunling/MyRepos/Readings/pull.sh
3. 我的push.sh脚步:
/usr/bin/cd /Users/sunling/MyRepos/Readings
/usr/local/bin/git add -A
/usr/local/bin/git commit -am "update"
/usr/local/bin/git push origin master
4. 我的pull.sh脚本:
/usr/local/bin/git pull origin master
这样还是不行呢!:(
@Ling Sun, 我的意思是命令改为
cd /Users/sunling/MyRepos/Readings && /bin/sh /Users/sunling/MyRepos/Readings/push.sh
或者使用类似 Python 的脚本,在脚本里控制上下文目录,cd 未必有用。
或者参考我上面回复给出的一个例子,那个例子是针对 git 的。 :)
cd $root$ && /bin/sh $root$/push.sh
https://we.markeditor.com/post/how-to-use-the-custom-cloud#main
cd /Users/sunling/MyRepos/Readings && /bin/sh /Users/sunling/MyRepos/Readings/pull.sh
还是不行呢!:(
@Ling Sun, 你好呀,抱歉,恐怕帮不上忙了。
我做了下面的尝试,工作正常。
1,新建的一个全新的目录,git init
2,新建 push.sh,内容为
/usr/bin/git add -A
/usr/bin/git commit -am "update"
3,在 ME 内 『同步到』 的命令调用为: cd $root$ && sh $root$/push.sh
然后,工作正常。
通过自定义的逻辑产生了脚本的调用,比如这里的实例是对 push.sh 的调用,而且没有产生错误日志,换句话说,就是操作系统内对这个脚本调用本身是没有报错的,它已经正确得被执行了。至于执行的效果,已经不是这个 『调用』能控制的了。
再找找原因? 或者不要通过 .sh 的中转,直接命令调用也是可以呀,参考前文提供的 demo 的链接就可以了,而且这个时候,如果出错,系统还能捕获到可能的错误信息。
我也放弃了,我建立了新目录测试,用了下面的命令还是不行,我记得之前我同步成功过,为什么突然不行啦!难道我需要重新卸载安装看看吗?
/usr/bin/cd $root$ && /usr/local/bin/git add -A && /usr/local/bin/git commit -am "update" && /usr/local/bin/git push origin master
@Ling Sun, 试一下完全的路径? 而不是 ./ 这样的相对路径。
@Ling Sun, 以及应该是 /bin/sh full_script_path 的方式, MarkEditor 对于脚本文件的调用,是没有系统 Env 的判断的。想象有点像 Linux 上的 crontab
我试了下完全路径,是不行。 请问”应该是 /bin/sh full_script_path 的方式” 是什么意思呢?
@Ling Sun, 就是在全路径之前加上 /bin/sh
虽然没有报错了,但是还是不能同步,好奇怪!
@Ling Sun, 或许你在 push.sh 内的 git 也要有完整的路径。
另外,在 push.sh 内的 cd,是否会影响到 『调用的再调用』 的上下文环境,我也不确定。
cd 当前的ME工作目录 && /bin/sh xxxxxx.sh,或许能解决这个问题,因为 ME 在调用脚本的时候,会尝试改变当前的上下文目录。
简单的来说,就是在这个时候的调用,不要对任何系统环境有依赖,比如我们输入 git,实际上对应的路径是 which git, 这些都是系统依赖;包括 cd 这样的命令也都是。
@Ling Sun, 你这个只是 git 的同步,可以参考 https://we.markeditor.com/post/how-to-use-the-custom-cloud#main
这里的命令, ME 内是有特殊的自动补全的。但是除此之外的,必须自己不要有任何系统环境的依赖。
1. 同步到:
/bin/sh /Users/sunling/MyRepos/Readings/push.sh
2. 同步自:
/bin/sh /Users/sunling/MyRepos/Readings/pull.sh
3. 我的push.sh脚步:
/usr/bin/cd /Users/sunling/MyRepos/Readings
/usr/local/bin/git add -A
/usr/local/bin/git commit -am "update"
/usr/local/bin/git push origin master
4. 我的pull.sh脚本:
/usr/bin/cd /Users/sunling/MyRepos/Readings
/usr/local/bin/git pull origin master
这样还是不行呢!:(
@Ling Sun, 我的意思是命令改为
cd /Users/sunling/MyRepos/Readings && /bin/sh /Users/sunling/MyRepos/Readings/push.sh
或者使用类似 Python 的脚本,在脚本里控制上下文目录,cd 未必有用。
或者参考我上面回复给出的一个例子,那个例子是针对 git 的。 :)
cd $root$ && /bin/sh $root$/push.sh
https://we.markeditor.com/post/how-to-use-the-custom-cloud#main
cd /Users/sunling/MyRepos/Readings && /bin/sh /Users/sunling/MyRepos/Readings/push.sh
cd /Users/sunling/MyRepos/Readings && /bin/sh /Users/sunling/MyRepos/Readings/pull.sh
还是不行呢!:(
@Ling Sun, 你好呀,抱歉,恐怕帮不上忙了。
我做了下面的尝试,工作正常。
1,新建的一个全新的目录,git init
2,新建 push.sh,内容为
/usr/bin/git add -A
/usr/bin/git commit -am "update"
3,在 ME 内 『同步到』 的命令调用为: cd $root$ && sh $root$/push.sh
然后,工作正常。
通过自定义的逻辑产生了脚本的调用,比如这里的实例是对 push.sh 的调用,而且没有产生错误日志,换句话说,就是操作系统内对这个脚本调用本身是没有报错的,它已经正确得被执行了。至于执行的效果,已经不是这个 『调用』能控制的了。
再找找原因? 或者不要通过 .sh 的中转,直接命令调用也是可以呀,参考前文提供的 demo 的链接就可以了,而且这个时候,如果出错,系统还能捕获到可能的错误信息。
我也放弃了,我建立了新目录测试,用了下面的命令还是不行,我记得之前我同步成功过,为什么突然不行啦!难道我需要重新卸载安装看看吗?
/usr/bin/cd $root$ && /usr/local/bin/git add -A && /usr/local/bin/git commit -am "update" && /usr/local/bin/git push origin master