Испытывание затруднений из-за основного, если затем оператор

Обратная совместимость!

ftp был вокруг в некоторой форме или другом с 1971. Это стало стандартным протоколом передачи файлов IP в 1980. "sftp" является просто протоколом ftp, который использует шифрование при передаче данных по сети, но в других отношениях идентичен протоколу "ftp". Это позволяет миллионам существующих сценариев и процедур использовать в своих интересах повышенную безопасность с минимальным изменением.

ssh - безопасный протокол оболочки разработан для выполнения команд оболочки по защищенной сети. Различная сетевая утилита управляет, чтобы шли с ssh, смоделированы на знакомом (для окружения сценаристов), команды Оболочки Bourne следовательно "scp" синтаксис свободно основаны на синтаксисе "CP" Unix.

0
22.04.2015, 04:25
2 ответа

У вас есть несколько вопросов. Вот рабочая версия. Вам необходимо использовать $, чтобы обозначить значение переменной ( $ filename вместо имени файла ), и вам необходимо назначить результат выражения переменной, а не просто вызывающую Выражение ( READ = EXPR $ READ + 1 вместо EXPR $ READ + 1 ).

 #!/bin/bash
if [ $# -ne 1 ]
then
   echo "Please provide one directory to search"
   echo "Example usage: assignment4.sh directory_name"
   exit 1
fi
if [ ! -d "$1" ]
then
   echo "$1: Invalid Directory. Aborting Script."
   exit 1
fi
cd "$1"
read=0
write=0
exe=0
numFiles=0
numDir=0
for filename in *
do
if [ -r "$filename" ]
then
   read=`expr $read + 1`
fi
if [ -x filename ]
then
   exe=`expr $exe + 1`
fi
if [ -w "$filename" ]
then
   write=`expr $write + 1`
fi
if [ -f "$filename" ]
then
   numFiles=`expr $numFiles + 1`
fi
done
for dir in */
do
if [ -r "$dir" ]
then
   read=`expr $read + 1`
fi
if [ -x "$dir" ]
then
   exe=`expr $exe + 1`
fi
if [ -w "$dir" ]
then
    write=`expr $write + 1`
fi
if [ -d "$dir" ]
then
   numDir=`expr $numDir + 1`
fi
done
total=`expr $numDir + $numFiles`
echo "In the directory $1"
echo "  Number of directories     : $numDir"
echo "  Number of files           : $numFiles"
echo "  Number of readable items  : $read"
echo "  Number of writable        : $write"
echo "  Number of executable items: $exe"
echo "-------------------------------"
echo "Total number of items: $total"
$ ./script.sh
Please provide one directory to search
Example usage: something.sh directory_name

$ ./script.sh /home/username

In the directory /home/username
  Number of directories     : 8
  Number of files           : 104
  Number of readable items  : 120
  Number of writable        : 120
  Number of executable items: 8
-------------------------------
Total number of items: 112
1
28.01.2020, 02:36

То, что вы не хватаете пробелы.

Это работает:

if [ $# -ne 1 ]
then
   echo "One argument needed"
   exit 1
fi

Аналогично:

if [ ! -d $1 ] 
1
28.01.2020, 02:36

Теги

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