私は、rootとして実行する必要があるスクリプトに取り組んでいます。そうでなければ、すべてを停止するはずです。
#!/bin/bash
validationRoot() {
if [ $USER != 'root' ]
then
echo "You're not root! You can't use this script."
fi
}
validationRoot;
echo "You're root!"
echo "You're not root! You can't use this script."
の後にaddを追加して実行を停止する方法がわかりません。
私はこれを次のようにしたでしょう:
#!/bin/bash
if [ "$(id -u)" != "0" ]; then
echo "This script must be run as root" 1>&2
exit 1
fi
Id = 0は、スーパーユーザー(またはルート)を識別するためにカーネル内で使用されるものです。
編集:STDERRにリダイレクトすることはさらに良いでしょう。
これがワンライナーです:)
(( EUID )) && echo ‘You need to be root.’ && exit 1