Я пытаюсь разработать сценарий оболочки, который просит пользователя ввести три имени файла, а затем сценарий выводит самый последний созданный файл. Однако каждый раз, когда я запускаю свой код, он автоматически переходит в раздел elseif и отображает «Имя файла не найдено…. ВЫХОД»
Какую ошибку я делаю в своем коде?
read -p "Enter three filenames : $1 $2 $3 "
if [ -f "$1" ] && [ -f "$2" ] && [ -f "$3" ]
then
ls -t $read | head n1
else
echo "No filename found .......EXITING"
fi
#!/bin/bash
в качестве первой строки (или укажите используемую оболочку, если неbash
). Удачи. - person shellter   schedule 28.08.2019$1
до$3
относятся к позиционным параметрам, а не к тому, что читается черезread
. Отметьтеread --help
: вы должны передавать имена переменных вread
, которые он будет заполнять считываемыми данными. - person Aaron   schedule 28.08.2019$ ls -1c File1 File2 File3 | head -1
Проблема также заключается в флаге-t
.-t
является последним измененным. Первоначальный вопрос был о самом последнем файле *созданном*`, что означает использование-c
дляctime
.$ man ls
- person jdw   schedule 28.08.2019