Напишите сценарий, который принимает только один аргумент, имя каталога

Напишите сценарий, который принимает ровно один аргумент — имя каталога. Сценарий должен вывести этот аргумент обратно на стандартный вывод. Убедитесь, что сценарий создает сообщение об использовании, если это необходимо, и что он обрабатывает ошибки с помощью сообщения.

Я пишу код, как я понимаю. Я правильно понимаю этот вопрос? Возможно, есть другие версии, как найти каталог.

#!/bin/bash

echo "Enter fail name:"
read str

find "$str" 2>/dev/null

sa=$?

if [ "$sa" = '0' ]    
then    
   echo "$str"    
else
   echo "Error"
fi

person Community    schedule 31.10.2014    source источник
comment
Используйте [[ -d "$str" ]], чтобы проверить, является ли аргумент каталогом, нет необходимости использовать find   -  person anubhava    schedule 31.10.2014
comment
Возможно, здесь был дан ответ: stackoverflow.com/questions/16344365/ . Вам это помогает?   -  person alph486    schedule 31.10.2014
comment
@ alph486 Я не мог использовать [[ -d $str ]]. Как писать в коде?   -  person    schedule 31.10.2014
comment
См. прикрепленную ссылку выше, чтобы узнать, работает ли это решение для поиска каталога с помощью bash. Кроме того, есть ли причина, по которой вам нужно написать сценарий для этого? Можете ли вы просто использовать вариант команды find, как показано в ссылке выше?   -  person alph486    schedule 31.10.2014


Ответы (1)


Похоже, ваш сценарий не использует аргумент. В bash первый ($0 — это ваш скрипт) будет $1 и что-то вроде:

#!/bin/bash

if [ "$1" == "" ]; then
  echo "$0: Please provide a directory name"
  exit 1
fi
if [ ! -d "$1" ]; then
  echo "$0: $1 is not a directory name"
  exit 1
fi
echo "$1"
person Elliott Frisch    schedule 31.10.2014
comment
Когда я запускаю этот скрипт, скрипт печатает Пожалуйста, укажите имя каталога, и где я могу написать имя каталога? - person ; 31.10.2014
comment
При запуске скрипта (как аргумент командной строки). ./script <DIRECTORY> - person Elliott Frisch; 31.10.2014
comment
уу спасибо сработало, а что написать чтобы проверить по файлам? - person ; 31.10.2014
comment
можете ли вы ответить на мой вопрос askubuntu.com/questions/544186/ - person ; 01.11.2014