Обработка всех аргументов, кроме первого (в скрипте bash)

Использовать,

String s="0.01";
int i= new Double(s).intValue();
377
задан Rob Bednark 23 August 2016 в 23:19
поделиться

3 ответа

Используйте это:

echo "${@:2}"

Следующий синтаксис:

echo "${*:2}"

будет работать, но не рекомендуется, потому что @Gordon уже объяснил, что, используя *, он запускает все аргументы вместе как один аргумент с пробелами, в то время как @ сохраняет разрывы между ними (даже если некоторые из аргументов сами содержат пробелы). Это не имеет значения с echo, но имеет значение для многих других команд.

552
ответ дан Community 23 August 2016 в 23:19
поделиться

Если вам нужно решение, которое также работает в /bin/sh, попробуйте

first_arg="$1"
shift
echo First argument: "$first_arg"
echo Remaining arguments: "$@"

shift [n] сдвинуть позиционные параметры n раз. shift устанавливает значение $1 равным значению $2, значение $2 равным значению $3 и т. Д., Уменьшая значение $# на единицу.

157
ответ дан Esteis 23 August 2016 в 23:19
поделиться

http://wiki.bash-hackers.org/scripting/posparams

Это объясняет использование shift (если вы хотите отбросить первые N параметров) и затем реализует массовое использование (ищите заголовок с таким названием).

4
ответ дан OnlineCop 23 August 2016 в 23:19
поделиться