Я написал следующий скрипт, который получает имя файла, а затем собирает и связывает файл. Но это не работает. В чем проблема?
EXPECTED_ARGS=2
if [ $# -ne $EXPECTED_ARGS ]
then
echo "[+] Assembling with Nasm."
nasm -f elf32 $1 -o $1.o
echo "[+] Linking ..."
ld $1.o -o $1
echo "[+] Done!"
else
printf "\nInvalid number of arguments, please check the inputs and try again\n"
fi;
Когда я запускаю его без передачи аргументов, он не показывает следующую ошибку:
printf "\nInvalid number of arguments, please check the inputs and try again\n"
if...then...else
. Кроме того, вопреки соглашению C, в bash$0
не считается аргументом, поэтомуEXPECTED_ARGS
в вашем скрипте должен быть 1 - person Leon   schedule 18.07.2017if ... then ... else
(т.е. распечатать ошибку, когда фактическое количество аргументов не равно ожидаемому количеству аргументов, и выполнить задание в противном случае) - person Leon   schedule 18.07.2017$#
илиARGC=$(( $# ))
), вопрос, связанный с оригиналом дубликата, ПОЛНОСТЬЮ НЕ ОТВЕЧАЕТ на это. Заставляет меня улучшить ответы здесь, но я не могу. - person dlamblin   schedule 05.07.2018