私はこのスクリプトを作成しました。基本的にはRAMキャッシュを削除することです。 私はそれが厄介であることを知っている - の周りのすべての「エコー 『』あなたが見ることされているだけで仕事がきれいにそれを作るために、私は、コマンドの間にいくつかの空白行を好きファイル許可フラグ 'setuid'が無視されています
#!/bin/bash
free -m && wait
echo ''; echo ''
while true; do
read -p "Vuoi liberare la RAM? [y,n]" domanda
case $domanda in
y|Y) echo ''; sync; sudo echo 3 > /proc/sys/vm/drop_caches; echo ''; free -m; echo ''; break ;;
n|N) echo ''; echo 'Sei tu il saggio Jack ;)'; echo ''; break ;;
*) echo ''; echo 'Come prego?'; echo '' ;;
esac
done
とにかく、スクリプトは動作しますが、順番に。それは、私はそれが続くよう権限を設定しなければならなかった作品にするために:。
sudo chown root.root <my script>
sudo chmod 4755 <my script>
私はそれが動作言ったように 私は、サブディレクトリのコールを作成しました:ビンは、自分の家で、内部のスクリプトをコピーして、私が追加この行は私のものです.profile
:
export PATH="/home/jacklapinza/.bin:$PATH"
したがって、新しいパスは正常に機能しますが、スクリプトはもう機能しません。私は「いいえ」を選択した場合、それは動作しますが、私は「Y」を押した場合は、エラーが飛び出す、意味:
permission denied.
私は、ファイルに同じ権限を設定しました。
私は間違っていますか?
ファイル内からsudo呼び出しを削除して、sudoを使ってスクリプトを呼び出すだけで十分です。スクリプトが '$(id -nu)'でルートとして実行されているかどうかを確認することができます。 –
いつも通常のパスの前にあなたのユーザディレクトリを追加すべきではありません。代わりにこれを使ってください: '$ PATH:" $ PATH:/home/jacklapinza/.bin "'または 'export PATH =" $ PATH:$ HOME /。ビン " – andlrc