假设我在URL"http://mywebsite.com/myscript.txt"上有一个包含脚本的文件:
#!/bin/bash
echo "Hello, world!"
read -p "What is your name? " name
echo "Hello, ${name}!"
Run Code Online (Sandbox Code Playgroud)
我想在没有先将其保存到文件的情况下运行此脚本.我该怎么做呢?
现在,我已经看到了语法:
bash < <(curl -s http://mywebsite.com/myscript.txt)
Run Code Online (Sandbox Code Playgroud)
但是这似乎不像我保存到文件然后执行那样.例如,readline不起作用,输出只是:
$ bash < <(curl -s http://mywebsite.com/myscript.txt)
Hello, world!
Run Code Online (Sandbox Code Playgroud)
同样,我试过:
curl -s http://mywebsite.com/myscript.txt | bash -s --
Run Code Online (Sandbox Code Playgroud)
结果相同.
最初我有一个解决方案,如:
timestamp=`date +%Y%m%d%H%M%S`
curl -s http://mywebsite.com/myscript.txt -o /tmp/.myscript.${timestamp}.tmp
bash /tmp/.myscript.${timestamp}.tmp
rm -f /tmp/.myscript.${timestamp}.tmp
Run Code Online (Sandbox Code Playgroud)
但这似乎很草率,我想要一个更优雅的解决方案.
我知道有关从URL运行shell脚本的安全性问题,但我们现在就忽略所有这些问题.
是否有可能使批处理文件删除其自身?
我试图让它执行另一个文件来删除它,但这没有用,是否有人知道我怎么做.我正在使用的批处理文件被提升.我的操作系统是Windows 7 32位.
windows batch-file windows-7 delete-file elevated-privileges
是否可以使用html5按钮事件运行bat/executable文件?在IE中,如果我没有错,可以使用Shell对象实现.
我在便携式驱动器的管理分区中有一个批处理文件,在驱动器的根目录上有一个符号链接到它的快捷方式。该文件的目的是卸载驱动器并将其重新安装为指定的字母(主要是为了方便)。
当文件被打开时,它是相对于当前字母而不是卷 ID 打开的,所以很自然地,当卸载发生时,命令处理器不知道下一步要做什么,因为它根据需要读取文件而不是缓存它.
有两种可预见的解决方案,我能想到但无法弄清楚:
batch-file ×2
windows ×2
bash ×1
curl ×1
delete-file ×1
dom ×1
html5 ×1
javascript ×1
linux ×1
windows-7 ×1