我想将脚本键入到诸如Heredoc之类的文件中,然后在不首先写入文件的情况下执行该脚本。
我使用带有附加sdcard的Teensy3.2微控制器自动键入一些重复性任务(例如USB宏键盘)。
为什么?我有一台不允许永久更改文件系统/大量存储设备的计算机,并且我有重复的任务可以从Shell脚本中受益。
但是,我发现这非常有用,以至于我想将未修改的Shell脚本加载到SD卡上并执行它们。只能将它们键入(没有大容量存储)。将它们键入文件需要将它们保存到文件系统并执行授予的权限,然后才能执行它们并最终将其删除。
我对此并不满意。似乎有点骇人听闻,我不喜欢使用“键盘宏”自动删除文件。
我尝试过 ssh << EOF 等等... // //但是不同的计算机要求使用不同的密码,这些密码未存储在(未修改的)脚本中,并且ssh会提示您输入密码,并且不允许我更改此配置。
我也尝试过 执行<< << 等等...但是我不明白这种行为,因为它在完成时会杀死我的外壳(这使我感到恐惧)。
基本上我想:
Keyboard.print("exec << 'EOF'");
while (sdcardScriptFile.available()) {
Keyboard.write(sdcardScriptFile.read());
}
Keyboard.print("EOF");
打开子shell并键入脚本的每一行会更好吗?如果是这样,我可以:
Keyboard.print("(");
while (sdcardScriptFile.available()) {
Keyboard.write(sdcardScriptFile.read());
}
Keyboard.print(")");
我希望能够将脚本添加到SD卡,并使它们可以“即时”输入和执行,而无需更改文件系统。
答案 0 :(得分:1)
如果需要在当前的shell进程中运行它,则可以获取它。
Keyboard.print(". /dev/fd/0 << 'EOF'");
while (sdcardScriptFile.available()) {
Keyboard.write(sdcardScriptFile.read());
}
Keyboard.print("EOF");