shの生成を手伝ってください

shの生成を手伝ってください

次のコマンドを実行可能なシェルスクリプト(?sh?)に変換するのに役立ちます。

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

ラッパーと呼び出しの概念を把握しようとしていますが、この簡単な作業は現在では理解できません。

どんな助けでも大変感謝します。

答え1

質問を理解したら、入力した正確なコードをシェルスクリプトとして実行しますか?

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)を使用してファイルに内容を追加します。実行時にどのシェルを使用するかを知らせるために最初の行を追加しました。

次に、そのファイルを名前付きファイルに保存します。文書

ファイルに実行権限が必要なのでchmod +x実行可能にしました。

これでスクリプトを実行できます$ ./file

解決しようとしている問題を完全に見逃している可能性がありますが、役に立つことを願っています。

答え2

ルートとして実行する必要があるスクリプトの唯一の部分は、カーネル構成パラメータを作成することです。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

または、この1行を使用してください

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

関連情報