exec /bin/tcsh は "if:expression 構文" を生成します。間違い

exec /bin/tcsh は

Oracle Linux 7.6を含むテストボックスとOracle Linux 7.7を含む本番ボックスの2つのサーバーがあります。

exec /bin/tcsh コマンドを実行すると、2 つの異なる結果が生成されます。

テストサーバーから:

# exec /bin/tcsh
#

ただし、本番サーバーではエラーはありません。

# exec /bin/tcsh
if: Expression Syntax.
#

本番ボックスのtcshパッケージに問題があると思って削除/再インストールしましたが、問題は解決しませんでした。この問題を解決しようとする他のアイデア/提案がありますか?

コメントの1つは、コマンドに-Vを追加することを提案しました。以下は出力の最後の数行です。

if ( $?QT_PLUGIN_PATH ) then
if ( "${QT_PLUGIN_PATH}" !~ *${libdir}/kde4/plugins* ) then
else

end


if [ ! -d ${HOME}/.local/share -a -w ${HOME} ] then
if: Expression Syntax.

exec コマンドが異常終了しないテストサーバーを保持します。上記の同じ行の-V出力は次のようになります。

if ( ! -d ${HOME}/.local/share ) then

唯一の違いはです-a -w ${HOME}

ベストアンサー1

これらのエラーメッセージは、シェルで実行されているログインスクリプトの構文エラーが原因で発生する可能性がありますtcsh

  • システム全体/etc/csh.cshrc
  • システム全体/etc/csh.login
  • ユーザー別~/.cshrc
  • ユーザー別~/.login

Bourne / POSIXスタイルのシェルでは、ifステートメントは通常if [ condition ]; then ... else ... fi、しかし、cshtcsh表されますif (condition) then ... else ... endif。 Bourne fi/ POSIXスタイルのスクリプトendifに精通している場合tcsh

おすすめ記事