bash:id:コマンドが見つかりません - bash:[::整数式が必要です。

bash:id:コマンドが見つかりません - bash:[::整数式が必要です。

私はDebian GNU / Linux 10(buster)を使用しています。 SSHを介してリモートでログインできます。資格情報を提供した後、ユーザーとルートの両方が表示されることを確認しました。

Password:
-bash: id: command not found
-bash: [: : integer expression expected
root@debian:~#

この問題に対する解決策が見つかりませんでした。私がなぜそれを受け取ったかについての提案はありますか?

答え1

これは、ログイン時にbashが実行するスクリプトの1つになければなりません。

この問題のデバッグに時間を費やすことに加えて、これが何であるかを見てみましょう。

man bashこのコマンドは、次の場所にあることを知らせます。

  • /etc/profile
  • ~/.bash_profile
  • ~/.bashrc
  • または環境変数で定義されたファイルBASH_ENV

あるいは、もちろん、これらのいずれかがロードしたすべてのファイルも同じです。

これが私たちが確認する必要があるすべてです。echo "value: ${BASH_ENV}ログイン後、環境変数が設定されていることを確認してください。

複数のユーザーが表示されるため、主な容疑者は/etc/profile長い間壊れたことを見たことがありません。変更可能なすべての内容を読み取ることができる他のシェルで実行するのに時間がかかります。

PATHあなたのコメントは、あなたのアイテムが/etc/environment破損してシステムが実行可能ファイルを見つけることができないようです。

答え2

コメントから:

昨日はjdk17をインストールし、/etc/environment PATH="/usr/lib/jvm/jdk-17.0.1/bin" JAVA_HOME="/usr/lib/jvm/jdk-17.0.1"パスの後に環境を設定しますしました。現れる。

PATH="/usr/lib/jvm/jdk-17.0.1/bin"ディレクトリを含むPATHに結果を設定します。ただidまたは、その後、他のコマンドはPATHに表示されません。スタートアップファイルの1つに次の内容が含まれている場合:

if [ "$(id -u)" -eq 0 ]; then ...

idコマンドが見つからず、コマンド置換の出力が空の文字列になり、エラーが発生します。

どういう意味ですか?

PATH="$PATH:/usr/lib/jvm/jdk-17.0.1/bin"

到着次へ追加PATHにディレクトリを追加しますが、できない/etc/environmentシェルスクリプトではないので、これを行います。課題をあなたの場所.bash_profileや他の同様の場所に置きます。

関連情報