Мне нужно создать скрипт, который позволяет передавать аргумент командной строки и проверять, существует ли он в качестве каталога в каталоге im, в котором запущен скрипт. Если это список содержимое и если оно не выводит сообщение об ошибке. Итак, в командной строке я должен ввести ./check.sh test (существующий каталог) и запустить скрипт. Теперь я не понимаю, как использовать тест, который должен составлять $ 1. В сценарии я хочу взять $ 1 и проверить его на существующие каталоги. Однако, если я делаю что-то вроде:Im learning bash, смущенный аргументами командной строки
#!/bin/bash
DIR=$1
cd DIR
ls
это не работает, потому что DIR не принимает аргумент (в данном случае тест) Я знаю, что нужно использовать, если-нибудь блок, но я не понимаю, как получить информацию, которую мне нужно для начала. Пожалуйста, помогите мне понять это.
Вы забыли '$' 'Попробуйте CD $ DIR' –
Вы должны использовать $ DIR, и вы можете использовать' тест (1) 'на самом деле проверить, нет ли там каталог. Как бы то ни было, если DIR не существует, ваш 'ls' будет запускаться в текущем каталоге. Вы также можете сократить это до 'cd $ DIR && ls'. –
На самом деле вам не нужно записывать cd на $ DIR. Вы можете просто сделать 'ls $ DIR' –