2016-04-25 3 views
1

Мой вопрос касается баш-программы, которая находится в этой большой книге о программировании малины pi (bash, Python, C).

Существует пример программы, показывающей, как работает , если работает в bash, но независимо от того, сколько раз прочитал описание программы, он просто не объясняет, правильно ли он это делает (я знаю это слишком много, чтобы спросить, хочу ли я тщательно Баш учебник в страницах книги 1000, и именно поэтому я здесь)

Так вот код:

#!/bin/bash 

if test $# -ne 2; then 
    echo "You have to pass 2 arguments to the command" 
    #argument/parameter, whatever you prefer 
    exit 1 
else 
    echo "Argument 1: $1, argument 2: $2" 
fi 

Я понимаю, что в -ne 2 средств : не равно 2, поэтому он проверяет, равна ли $#, но я не подставлен d что он делает ($#). -> Первый вопрос

В else он печатает $1 и $2, но я думал, что $variablename напечатает значение этой переменной. Как целое число может быть переменной? -> второй вопрос

И да, я google'ed и не нашел ничего полезного (возможно, не искал достаточно?), именно поэтому я здесь.

Буду признателен за любую помощь, будь то ссылка, чтобы прочитать ее самостоятельно или короткое объяснение. Заранее спасибо :)

+0

Это также является то, что легко доступны в человеко-страниц и статических веб-страниц может искать. Не уверен, что это когда-либо было достойным ответа StackOverflow. – SaintHax

+0

Если вы собираетесь использовать 'bash', я настоятельно рекомендую вам прочитать инструкцию! В терминале «man bash» или [Bash Reference Manual] (https://www.gnu.org/software/bash/manual/bash.pdf) в файле PDF. – user3439894

ответ

1

$# относится к числу параметров, полученных во время выполнения, а не к определенному параметру. $1 заменяется на все, что было в местоположении 1 в командной строке при выполнении сценария.

+0

Большое спасибо! Это помогло. –

1

$# Обозначает количество аргументов командной строки или позиционные параметры

$1 и $2 обозначим через первый и второй аргумент командной строки передается соответственно

+0

Спасибо вам большое! –

Смежные вопросы