Как предложил SLM на ваш другой вопрос ,
Я предлагаю сделать это с , а
петля, а не на для цикла
:
looking_at=
ipcs | while read key id owner other
do
# Keep track of which section we’re in.
if [ "$id" = "Shared" ] # $id is the second field; i.e., $2.
then
looking_at=shm
elif [ "$id" = "Semaphore" ]
then
looking_at=sem
elif [ "$id" = "Message" ]
then
break
fi
if [ "$owner" = "bob" ]
then
if [ "$looking_at" = "shm" ]
then
ipcrm shm "$id"
elif [ "$looking_at" = "sem" ]
then
ipcrm -s "$id"
fi
fi
done
Это считывает вывод команды IPCS
в одну строку за раз,
Вырывая первые три поля в виде клавиши
, ID
, и владелец
.
Как говорит комментарий,
Мы используем Selection_at
переменную для отслеживания того, какой раздел мы находимся.
Затем, на каждой строке, которая содержит BOB
в третьем поле,
Мы используем Slection_at
, чтобы определить, какой параметр IPCRM
для использования.
Слишком много уровней символических ссылок.
Это, скорее всего, означает, что у вас есть круговая симличинка.
Например, давайте создадим папку
, которые ссылаются на себя:
$ ln -s folder folder
Теперь, давайте CD
на нем:
$ cd folder
bash: cd: folder: Too many levels of symbolic links
LS
дает аналогичный результат:
$ ls folder
ls: cannot access folder: Too many levels of symbolic links
Решением является изучение вашего каталога папок
и исправить любую циркулярную ссылку, которую у вас есть. Чтобы помочь попробовать запустить ls -ld
на нем:
$ ls -ld folder
lrwxrwxrwx 1 me me 6 Mar 2 21:25 folder -> folder
Вышесказанное ясно показывает простую круговую ссылку.