Pull to refresh

Comments 9

Есть утилита, которую многие используют и не знают, что это утилита
/usr/bin/[
:)
А многие думают, что используют, а на самом деле — нет, поскольку shell «не доводит до греха» (обращения к ФС) и справляется сама, будучи достаточно продвинутой для этого :)

Это bash так делает, а вот минималистичные вариации все же используют test, который [

да и bash в пайпе вызывает сам себя выполняя builtins. (обращаясь в ФС )
кажется так.

PS. Сейчас пишу проект в школе 21 про шелл и буду благодарен если кто поправит.
да и bash в пайпе вызывает сам себя выполняя builtins. (обращаясь в ФС )

Что-то я не вижу запуска дочернего процесса в случае встроенного test.


:) > strace -e trace=%process bash -c "[ 1 -eq 1 ]"
execve("/bin/bash", ["bash", "-c", "[ 1 -eq 1 ]"], 0x7ffdeeebf7f0 /* 72 vars */) = 0
arch_prctl(ARCH_SET_FS, 0x7f28dab7e740) = 0
exit_group(0)                           = ?
+++ exited with 0 +++

:) > strace -e trace=%process bash -c "[[ 1 -eq 1 ]]"
execve("/bin/bash", ["bash", "-c", "[[ 1 -eq 1 ]]"], 0x7fff57679a80 /* 72 vars */) = 0
arch_prctl(ARCH_SET_FS, 0x7f89dfc60740) = 0
exit_group(0)                           = ?
+++ exited with 0 +++

:) > strace -e trace=%process bash -c "/usr/bin/test 1 -eq 1"
execve("/bin/bash", ["bash", "-c", "/usr/bin/test 1 -eq 1"], 0x7ffeeb49ed40 /* 72 vars */) = 0
arch_prctl(ARCH_SET_FS, 0x7f9f5d72d740) = 0
execve("/usr/bin/test", ["/usr/bin/test", "1", "-eq", "1"], 0x55caa9954ab0 /* 72 vars */) = 0
arch_prctl(ARCH_SET_FS, 0x7fd2b445a540) = 0
exit_group(0)                           = ?
+++ exited with 0 +++

:( > bash --version
bash --version
GNU bash, version 4.4.20(1)-release (x86_64-pc-linux-gnu)
Copyright (C) 2016 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>

This is free software; you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
:) > lsb_release -a
lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 18.04.4 LTS
Release:    18.04
Codename:   bionic
Посмеялся, когда увидел, что за «энтузиаст» поддерживает форк typo на Go.
А я недавно, пытаясь переделать для тещи plain text таблицу (нужно было изменить ширины рядов), на SO наткнулся на пример использования утилиты column. Удобная штука, и много разных параметров имеет…
Пример:
echo -e "a b c\n12 4312234 4341324\nllaoo asdf  fdaasd" | column -t          
a      b        c
12     4312234  4341324
llaoo  asdf     fdaasd

(но все равно пришлось делать при помощи awk!)
Only those users with full accounts are able to leave comments. Log in, please.

Information

Founded
Location
Россия
Website
1cloud.ru
Employees
31–50 employees
Registered