Stories
Slash Boxes
Comments

SoylentNews is people

posted by martyb on Tuesday December 01 2015, @07:50PM   Printer-friendly
from the features-are-beneficial-bugs dept.

We make very careful considerations about the interface and operation of the GNU coreutils, but unfortunately due to backwards compatibility reasons, some behaviours or defaults of these utilities can be confusing.

This information will continue to be updated and overlaps somewhat with the coreutils FAQ, with this list focusing on less frequent potential issues.

Good tips and reminders for those who don't work mostly with a CLI (Command Line Interface).


[What has been YOUR biggest CLI gotcha? -Ed.]

Original Submission

 
This discussion has been archived. No new comments can be posted.
Display Options Threshold/Breakthrough Mark All as Read Mark All as Unread
The Fine Print: The following comments are owned by whoever posted them. We are not responsible for them in any way.
  • (Score: 2, Informative) by xav on Wednesday December 02 2015, @03:55AM

    by xav (5579) on Wednesday December 02 2015, @03:55AM (#270481)

    My favorite gotcha is the difference between the for loop and the while loop in bash. While loops create subshells with a new environment while for loops do not.

    No, pipes do create subshells, not "while".

    What I mean is that
    # seq 1 3 | while read n; do echo $n; done
    creates two subshells for seq and while, whereas
    # for n in $(seq 1 3); do echo $n; done
    creates only one subshell for seq, not for the "for" loop.

    On the other hand, the two following while loops do the same thing in the current shell:
    # while read n; do echo $n; done <<< "$(seq 1 3)"
    # while read n; do echo $n; done < <(seq 1 3)

    Starting Score:    1  point
    Moderation   +1  
       Informative=1, Total=1
    Extra 'Informative' Modifier   0  

    Total Score:   2