у вас есть опечатка в строке 8 вашего скрипта, она должна быть:
читать имя каталога
{{1} } По этой причине вы выводите только «5», потому что $ dirname пусто.
Что происходит, когда вы читаете $ dirname
, оболочка расширяет '$ dirname' до пустого значения.
Также к сведению, всегда используйте двойные кавычки при заключении переменных.
Исправленный сценарий:
#!/bin/ksh
echo Enter the level of nesting
read lev
echo Enter the directory \( Enter the Absolute Path\)
read path
echo Enter the directory name
read dirname
cd $path
for((i=1;i<=$lev;i++));
do
mkdir "$dirname$i"
cd "$dirname$i"
done
echo "$dirname$i"
Это ответ -на вопрос @Kusalananda в комментарии, связанном с вашим вопросом выше.
Предположим, у вас есть два пользователя, user1
и user2
. Предположим, что user1
имеет домашнюю директорию /home/user1
. Теперь предположим, что в домашнем каталоге user1
вы создаете каталог, принадлежащий user2
, скажем, /home/user1/sources
, может ли user2
получить доступ к этому каталогу?
Чтобы user2
мог получить доступ к /home/user1/sources
, user2
необходимо иметь разрешениеx
(на обход )для каждого каталога от корня до каталога sources
включительно :
$ ls -ld /
dr-xr-xr-x 31 root root 4096 Feb 28 11:37 /
^ Check (this will almost always be OK)
$ ls -ld /home
drwxr-xr-x 4 root root 4096 Feb 28 11:38 /home
^ Check (this will almost always be OK)
$ ls -ld /home/user1
drwx------ 9 user1 group1 4096 Mar 21 00:36 /home/user1
^ ^ In this case, no, user2 cannot traverse here
$ ls -ld /home/user1/sources
drwxr-xr-x 9 user2 group2 4096 Mar 21 00:36 /home/user1/sources
^ Check
В этом примере, поскольку user2
не может перейти в /home/user1
, user2
не может получить доступ к /home/user1/sources
(, даже если user2
владеет этим каталогом ).
В своем вопросе вы сказали, что каталог sources
находится в домашнем каталоге первого пользователя. Я предполагаю, что второй пользователь не может получить доступ к домашнему каталогу первого пользователя.
Вы можете рассмотреть возможность размещения каталога sources
за пределами домашнего каталога пользователя.