我需要一些帮助,将以下命令转换为可执行 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