Отправлено с моим / etc / profile, и теперь при каждом входе в систему появляется ошибка

попробуйте этот сценарий оболочки

#!/bin/bash

abc=/somefolder/andsubfolder/my_first_text.txt
my_file=$(echo $abc | awk -F/ '{print $4}')
echo "$my_file"

, это обязательно поможет вам.

1
задан 31 May 2016 в 08:56

2 ответа

Часть здесь:

if [ -d /etc/profile.d ]; then
  for i in /etc/profile.d/*.sh; do
    if [ -r $i ]; then
      . $i
    fi
fi

должна выглядеть так:

if [ -d /etc/profile.d ]; then
  for i in /etc/profile.d/*.sh; do
    if [ -r $i ]; then
      . $i
    fi
  done
fi
5
ответ дан 23 May 2018 в 10:35
  • 1
    Это сработало, спасибо! Значит, все остальное выглядит хорошо. Чтобы я мог оставить его в покое, пока не узнаю, что я делаю, без каких-либо ошибок? – mrmojorisin2794 31 May 2016 в 09:06
  • 2
    Выглядит законно до сих пор, я вижу :) вы должны отметить ответ heemayl как правильный, отметив галочку рядом с его ответом и, возможно, дайте мне голосование, его ответ более подробно о том, что было не так. – Videonauth 31 May 2016 в 09:07
  • 3
    Я попробовал, это не позволит мне голосовать, потому что моя учетная запись настолько новая. Однако я ценю ответ. Еще раз спасибо! – mrmojorisin2794 31 May 2016 в 09:37

У меня была аналогичная проблема в моей системе несколько дней назад после установки JVE1.8 и JDK1.8. Убедитесь, что присутствуют символы # перед /etc/profile (строка 1) и and Bourne (строка 2), а также done между командами fi в конце.

Если после этого все еще появляется ошибка, попробуйте добавить unset i над командой done.

Если она все еще дает ошибку, попробуйте добавить unset i над done.

# /etc/profile: system-wide .profile file for the Bourne shell (sh(1))
# and Bourne compatible shells (bash(1), ksh(1), ash(1), ...).

if [ "$PS1" ]; then
  if [ "$BASH" ] && [ "$BASH" != "/bin/sh" ]; then
    # The file bash.bashrc already sets the default PS1.
    # PS1='\h:\w\$ '
    if [ -f /etc/bash.bashrc ]; then
      . /etc/bash.bashrc
    fi
  else
    if [ "`id -u`" -eq 0 ]; then
      PS1='# '
    else
      PS1='$ '
    fi
  fi
fi

if [ -d /etc/profile.d ]; then
  for i in /etc/profile.d/*.sh; do
    if [ -r $i ]; then
      . $i
JAVA_HOME=/usr/lib/jvm/java-8-oracle
PATH=$PATH:$HOME/BIN:$JAVA_HOME/bin
export JAVA_HOME
export PATH
    fi
done
fi
0
ответ дан 23 May 2018 в 10:35

Другие вопросы по тегам:

Похожие вопросы: