Какие из следующих запросов не проходят через виртуальную файловую систему (VFS )в Linux?

Если ваша строка не слишком длинная:

w='-w o rd baa'
w=${w//[!a-z]}  # strip anything but lower case letters
eval echo '${w:'{0..10}':1}'
eval array=\( '${w:'{0..10}':1}' \)
echo "${array[@]}"

w o r d b a a

Вы можете превратить глупую вещь во что-то более неприятное, безопасное для IFS -и glob -, которое учитывает различия в относительном порядке фигурных скобок и расширений переменных между zsh, bashиksh:

args(){ printf '<%s> ' "$@"; echo; }
w='-e a * () \n peek
    fo*"x'"'q"
eval eval args "'\"\${w:'{0..$((${#w}-1))}':1}\"'"
eval eval 'array=\(' "'\"\${w:'{0..$((${#w}-1))}':1}\"'" '\)'
args "${array[@]}"

<-> <e> < > <a> < > <*> < > <(> <)> < > <\> <n> < > <p> <e> <e> <k> <
> <     > <f> <o> <*> <"> <x> <'> <q>    

Но, откровенно говоря, единственная польза от такого чудовища может заключаться в том, чтобы отпугнуть новичков и произвести впечатление на дураков предполагаемым глубоким знанием тонкостей языка оболочки;-)

-2
12.12.2020, 14:37
1 ответ

2 и 3 не задействуют файловые системы, поэтому они не проходят через VFS.

1
18.03.2021, 22:43

Теги

Похожие вопросы