协助创建 sh

协助创建 sh

我需要一些帮助,将以下命令转换为可执行 shell 脚本 (?sh?)

sudo su  
export SLOTS=/sys/devices/bone_capemgr.*/slots  
cd /lib/firmware  
echo PRU-GPIO-Enable > $SLOTS  
exit

我试图掌握包装器和调用的概念,但目前这个简单的任务还超出了我的掌握范围。

任何帮助,将不胜感激。

答案1

如果我理解这个问题,您希望您输入的确切代码可以作为 shell 脚本运行吗?

echo "
#!/bin/bash
export SLOTS=/sys/devices/bone_capemgr.*/slots
cd /lib/firmware
echo PRU-GPIO-Enable > $SLOTS
exit" > file && chmod +x file

我删除了,sudo su因为我认为使用运行脚本更好sudo,而且我不确定尝试从脚本设置用户可能会给您带来什么问题。

或者要分解它,创建一个文件并使用文本编辑器(vim、emacs 或 nano)将内容添加到文件中。我在其中添加了第一行,让它知道执行时使用什么 shell,因为 bash 通常是足够的默认值,所以我就使用了它。

然后你将文件保存到一个命名文件中,我称之为文件

该文件需要执行权限,因此我chmod +x对该文件使其可执行。

现在你可以运行脚本了$ ./file

我可能完全错过了您想要解决的问题,但希望我能提供帮助。

答案2

该脚本中唯一需要以 root 身份运行的部分是写入内核配置参数。这cd也是多余的,因为没有任何东西使用它。

所以脚本可以这样重写

#!/bin/bash
export SLOTS=/sys/devices/bone_capemgr.*/slots
echo PRU-GPIO-Enable | sudo tee $SLOTS >/dev/null
exit

请记住使脚本文件可执行,并在适当的情况下将其放入您的$PATH. (我根据上下文使用/usr/local/bin/$HOME/bin,两者都始终在我的 中$PATH。)

或者使用这个单行

echo PRU-GPIO-Enable | sudo tee /sys/devices/bone_capemgr.*/slots >/dev/null

相关内容