/
niceSOFT
/
util-linux
Обзор
Документация
Войти
/
niceSOFT
/
util-linux
Код
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
tests/ts/script/options
112 строк
4 KB
Karel Zak
script: fix "--" separator when used as option argument
12 май 2026, 13:49
12 май 2026, 13:49
88425e6
Код
Авторство
О чём код?
#!/usr/bin/env bash # This file is part of util-linux. # # This file is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This file is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. TS_TOPDIR="${0%/*}/../.." TS_DESC="options" . "$TS_TOPDIR"/functions.sh ts_init "$*" export SCRIPT_TEST_SECOND_SINCE_EPOCH=1432489398 export TZ="GMT" ts_check_test_command "$TS_HELPER_SCRIPT" ts_init_subtest "append" $TS_HELPER_SCRIPT --command "echo append1" "$TS_OUTPUT" </dev/null >/dev/null 2>&1 $TS_HELPER_SCRIPT --append --command "echo append2" "$TS_OUTPUT" </dev/null >/dev/null 2>&1 ts_finalize_subtest ts_init_subtest "force" ln -s "$TS_OUTPUT" typescript $TS_HELPER_SCRIPT --command "echo no force" </dev/null >/dev/null 2>> "$TS_OUTPUT" echo $? >> "$TS_OUTPUT" $TS_HELPER_SCRIPT --append --force --command "echo with force" </dev/null >/dev/null echo $? >> "$TS_OUTPUT" rm -f typescript ln -s "$TS_OUTPUT" tpircsepyt $TS_HELPER_SCRIPT --append --command "echo not typescript" tpircsepyt </dev/null >/dev/null echo $? >> "$TS_OUTPUT" rm -f tpircsepyt ts_finalize_subtest ts_init_subtest "quiet" $TS_HELPER_SCRIPT --quiet --command "echo quiet1" "$TS_OUTPUT" </dev/null >/dev/null 2>&1 $TS_HELPER_SCRIPT --append --quiet --command "echo quiet2" "$TS_OUTPUT" </dev/null >/dev/null 2>&1 ts_finalize_subtest ts_init_subtest "return" $TS_HELPER_SCRIPT --command "exit 1" "$TS_OUTPUT" </dev/null >/dev/null 2>&1 echo $? >> "$TS_OUTPUT" $TS_HELPER_SCRIPT -a --command "exit 0" "$TS_OUTPUT" </dev/null >/dev/null 2>&1 echo $? >> "$TS_OUTPUT" $TS_HELPER_SCRIPT --return --append -c "exit 42" "$TS_OUTPUT" </dev/null >/dev/null 2>&1 echo $? >> "$TS_OUTPUT" $TS_HELPER_SCRIPT --return --append -c "exit 127" "$TS_OUTPUT" </dev/null >/dev/null 2>&1 echo $? >> "$TS_OUTPUT" ts_finalize_subtest # basic "--" separator: outfile before --, command after -- ts_init_subtest "dashdash-separator" $TS_HELPER_SCRIPT "$TS_OUTPUT" -- echo dashdash </dev/null >/dev/null 2>&1 ts_finalize_subtest # "--" is consumed as required_argument value by --log-in (creates file # named "--"), second "--" is the real separator ts_init_subtest "dashdash-optarg-long" $TS_HELPER_SCRIPT --log-in -- --log-out "$TS_OUTPUT" -- echo dashdash-long </dev/null >/dev/null 2>&1 rm -f -- -- ts_finalize_subtest # same as above but with short option -I ts_init_subtest "dashdash-optarg-short" $TS_HELPER_SCRIPT -I -- -O "$TS_OUTPUT" -- echo dashdash-short </dev/null >/dev/null 2>&1 rm -f -- -- ts_finalize_subtest # first --log-in takes second --log-in as filename (creates file named # "--log-in"), --log-out takes $TS_OUTPUT, "--" is the separator ts_init_subtest "dashdash-optarg-chain" $TS_HELPER_SCRIPT --log-in --log-in --log-out "$TS_OUTPUT" -- echo dashdash-chain </dev/null >/dev/null 2>&1 rm -f -- --log-in ts_finalize_subtest # --log-in takes first "--" as filename (creates file named "--"), # second "--" is the real separator ts_init_subtest "dashdash-optarg-odd" $TS_HELPER_SCRIPT -O "$TS_OUTPUT" --log-in -- -- echo dashdash-consumed </dev/null >/dev/null 2>&1 rm -f -- -- ts_finalize_subtest # first --log-in takes second --log-in as filename (creates file named # "--log-in"), "--" is the separator ts_init_subtest "dashdash-optarg-chain-even" $TS_HELPER_SCRIPT -O "$TS_OUTPUT" --log-in --log-in -- echo dashdash-chain-even </dev/null >/dev/null 2>&1 rm -f -- --log-in ts_finalize_subtest # bundled short options: -B takes "c" as inline value (creates file named # "c"), "--" is the separator ts_init_subtest "dashdash-optarg-bundle" $TS_HELPER_SCRIPT -Bc -- echo dashdash-bundle </dev/null >/dev/null 2>&1 mv c "$TS_OUTPUT" ts_finalize_subtest ts_init_subtest "size" $TS_HELPER_SCRIPT --output-limit 9 --command "echo 1:1234567890" "$TS_OUTPUT" </dev/null >/dev/null 2>&1 $TS_HELPER_SCRIPT -a --output-limit 9 --command "echo 2:1234567890" "$TS_OUTPUT" </dev/null >/dev/null 2>&1 echo $? >> "$TS_OUTPUT" ts_finalize_subtest ts_finalize