私はあなたのコンパイルの簡単なやり方ガイド。しかし、ターミナルで以下のコマンドを実行するとすぐに、次のエラーが表示されます。
tejas@tejas-AU909AA-ACJ-CQ3120IX:~$ sudo chown $tejas /usr/local/src
chown: missing operand after ‘/usr/local/src’
この問題を克服する方法はありますか?
答え1
$USER
この変数にはすでに「tejas」が含まれているため、独自のセッション ログイン名 (tejas) に置き換える必要はありません。
したがって、使用する正しいコマンドは次のようになります。
sudo chown $USER /usr/local/src
変数$ENV
、$LOGNAME
、$MAIL
、$TERM
、$USER
は$USERNAME
Bash の組み込み変数ではありません。ただし、これらは多くの場合、Bash またはログイン起動ファイルのいずれかで環境変数として設定されます。
答え2
その間そうする必要はないを手動でユーザー名に置き換えること$USER
もできます。代わりに全体「単語」 であり$USER
、 だけではありませんUSER
。つまり、$
次のように書くときには を省略します。
sudo chown tejas /usr/local/src
これは、$
「名前」の前にあるのは、それが変数の名前であり、その変数が参照解除される必要がある、つまり、そこに格納されている値に置き換えられる必要があることを意味するためです。は、USER
ユーザー名を保持する環境変数です。
対照的に、tejas
は(おそらく)定義されていません(何らかの値が割り当てられた変数という意味で)。シェルでは、定義されていない変数は、ほとんどの場合、空であるかのように扱われます。つまり、空の(つまり長さがゼロの)テキスト文字列を保持します。したがって、は次$tejas
のように置き換えられます。何もない実際に実行されるコマンドは ですがsudo chown /usr/local/src
、これは機能しません。