Talk:Bash (Unix shell): Difference between revisions

Content deleted Content added
P4lm0r3 (talk | contribs)
Anchors: Reply
 
(320 intermediate revisions by 72 users not shown)
Line 1:
{{talkheaderTalk header}}
{{WikiProject Computingbanner shell|class=B|importance1=}}
{{WPFS|class=BWikiProject Computer science |importance=HighMid}}
{{WikiProject Linux |importance=High}}
== Install instructions? ==
{{WikiProject Computing |importance=Mid |software=yes|software-importance=High|free-software=yes|free-software-importance=High }}
}}
{{User:ClueBot III/ArchiveThis
| age =2160
| archiveprefix =Talk:Bash (Unix shell)/Archive
| numberstart =1
| maxarchsize =75000
| header ={{Automatic archive navigator}}
| minkeepthreads =5
| format = %%i
}}{{Archives|bot=ClueBot III|age=90}}
<!-- Template:Setup cluebot archiving -->
 
== Single maintainer for over 30 years ==
I don't think that the Bash installation instructions should be part of this article &mdash; they just duplicate the same information in the bash distribution (and probably do an inadequate job of it). Does this kind of information really belong in an encyclopedia? --[[User:Neilc|Neilc]] 07:56, 30 Nov 2004 (UTC)
 
''<small>CC {{re|Blush30720}} {{re|Neko-chan}}</small>''<br>
:I feel the same way. --[[User:Mark Bergsma|Mark Bergsma]] 15:13, 30 Nov 2004 (UTC)
I think it's worth to mention the fact that only one person maintained bash for over 30 years (as of 2025). All along. <s>Not breaking compatibility even once.</s> Just like in that Xkcd 2347 meme. We have at least two sources on that. Any objections? <span style="font-weight: bold" >[[User:Alexander_Davronov|<span style="color:#a8a8a8;">AXO</span><span style="color:#000">NOV</span>]] [[User talk:Alexander_Davronov|(talk)]] [[Special:Contributions/Alexander_Davronov|⚑]]</span> 19:53, 26 April 2025 (UTC)
 
:@[[User:Alexander Davronov|Alexander Davronov]] I'm not sure why I'm tapped in on this, but if you have good sources, go for it ~<small>ฅ(ↀωↀ&#61;)</small>[[User:Neko-chan|neko-chan]]<sup>[[User talk:Neko-chan|nyan]]</sup> 01:28, 27 April 2025 (UTC)
::I've commented out the "How to install Bash" section for now, but the reason I added it in the first place was because Bash is often an add-on shell (i.e., it doesn't come with every UNIX system), so people who want to start using it need to download, build, and install it themselves. This is not hard to do if you are a programmer, but non-programmers often have no idea what to do with a tarball after they download it, even if they know in some abstract way that a "build and install" must be done. Perhaps a reduced summary of this section should remain to help such a user? &mdash; [[User:franl|franl]] 16:55, 30 Nov 2004 (UTC)
:"Not breaking compatibility even once" is a demonstrated falsehood. I've used Bash as my primary shell and have on many occasions had to make changes to my scripts to accommodate changes to Bash; often this only required minor tweaks, but at least twice it has required significant reworking. For example, non-local flow control using <code>break</code> and <code>continue</code> was broken without warning in Bash 4.3. Although the previous behaviour can be reinstated using <code>shopt -s compat42</code>, that disables all subsequent improvements as well, so numerous scripts required significant re-working to get around the loss of this functionality.
:There is even a breaking change expected in the upcoming 5.3 release, ''and'' the maintainer is aware of this: it introduces a mandatory warning for usage of `printf` that has hitherto worked silently, with no option to suppress this warning. This spurious output will cause breakage in a small proportion of CI/CD chains and false alarms in some system monitoring tools. Yet the maintainer asserts that it won´t cause enough damage to existing systems to justify any ameliorative adjustment; I'm a "lone wolf" and should be ignored.
:I'm way beyond disappointed. [[User:Martin Kealey|Martin Kealey]] ([[User talk:Martin Kealey|talk]]) 07:13, 18 May 2025 (UTC)
::Thanks for reaching and pointing that out. I was totally wrong on that. Turns out there is a whole range of [https://www.gnu.org/software/bash/manual/html_node/Shell-Compatibility-Mode.html options] to invoke compatibilty modes... Including <code><nowiki>--posix</nowiki></code>. <span style="font-weight: bold" >[[User:Alexander_Davronov|<span style="color:#a8a8a8;">AXO</span><span style="color:#000">NOV</span>]] [[User talk:Alexander_Davronov|(talk)]] [[Special:Contributions/Alexander_Davronov|⚑]]</span> 07:58, 18 May 2025 (UTC)
::Hi Martin, Those are some useful and, as far as I know, accurate points. However, please direct any comments about the bash-bug channel back into that channel. I appreciate you, Wiley [[User:Blush30720|Blush30720]] ([[User talk:Blush30720|talk]]) 22:26, 6 July 2025 (UTC)
:Bash is a sizeable program. Since so much cross-compatibility and ease-of-use has been written into it across the years, there are some instances that effectively (and quite easily) can be read as new commits which break past functionality, even when such a break had been completely unintentional. Part of the issue is that sometimes people use bash in any old way that just seems to do what they think it does, whether or not they're using proper syntax, and whether or not the code actually does what they expect it to do. As a result, people can end up relying on some functionality originally produced as a side-effect of some other proper syntax, or even as a side-effect of some as-yet-discovered-and-resolved bug. Thus, people could be using some super-wierd syntax, and when the bug gets fixed, the side-effect of the bug disappears, and people assume some regression's occurred, when in reality, their super-weird syntax, which was never supported in the first place, has stopped working the way they expect, and by virtue of the program functioning with fewer errors than it had prior. But really, and in my opinion, the difficulty with such a claim of, "not even once," would be the burden of having to prove that ("not even once" had indeed occurred) , which would mean proving a negative claim, which would require searching through all of the commits to positively identify the absence of any breaks in compatibility: surely a tedious and onerous effort. [[User:Blush30720|Blush30720]] ([[User talk:Blush30720|talk]]) 22:24, 6 July 2025 (UTC)
 
== Misleading timeline points ==
:::Very well, but that still belongs in the documentation, not in an encyclopedia. Perhaps add a convenient link to it. --[[User:Mark Bergsma|Mark Bergsma]] 20:05, 9 Dec 2004 (UTC)
 
Some anachronisms:
==OSX==
 
* 1971 - Ken Thompson developed the first shell for UNIX ''called the 'V6 shell' '' - except that “v6 shell” was simply shorthand for whatever version of the shell was shipped as part of <code>UNIX v6</code>, which itself wasn't shipped until 5 years later. This misattribution extends to claims of features that did not exist in 1971, such as pipelines. <br/>The reference to <code>osh</code> ''still'' being distributed is clearly out of place; it should probably sit against the 1977 release of the Bourne Shell.
"Bash is the default shell on most Linux systems as well as on Mac OS X "
* 1977 - ASCII published by NIST - technically true, but it had been published by ANSI in 1968. (By 1977 ASCII had ''already'' been the dominant encoding for several years, so it's not clear why it's mentioned here at all.)
* 1984 - ''IEEE POSIX work started in 1984'' - except it wasn't driven by IEEE until 1986, and wasn't called POSIX until 1988.
Also, much of this list really belongs under [[UNIX]] rather than [[Bash (Unix shell)|Bash]].
[[User:Martin Kealey|Martin Kealey]] ([[User talk:Martin Kealey|talk]]) 23:16, 18 May 2025 (UTC)
:I suggest we move statements on ASCII to the article about ASCII. <br>Regarding POSIX: I think we should keep this statement cause it specifies "work" on standard, not standard itself which was published in 1988. <span style="font-weight: bold" >[[User:Alexander_Davronov|<span style="color:#a8a8a8;">AXO</span><span style="color:#000">NOV</span>]] [[User talk:Alexander_Davronov|(talk)]] [[Special:Contributions/Alexander_Davronov|⚑]]</span> 09:21, 21 May 2025 (UTC)
:yes, there's nearly no history of bash itself in most of these entries. Removing them. [[User:MüllerMarcus|MüllerMarcus]] ([[User talk:MüllerMarcus|talk]]) 08:40, 7 June 2025 (UTC)
:Memory is fungible. Any anachronisms should be addressed with references to sources. [[User:Blush30720|Blush30720]] ([[User talk:Blush30720|talk]]) 23:15, 6 July 2025 (UTC)
 
== Random grab-bag ==
I thaught CSH was the OSX one? <small>—Preceding [[Wikipedia:Signatures|unsigned]] comment added by [[Special:Contributions/86.16.160.17|86.16.160.17]] ([[User talk:86.16.160.17|talk]]) 19:18, 26 November 2007 (UTC)</small><!-- Template:UnsignedIP --> <!--Autosigned by SineBot-->
 
I find the overall quality of this article disappointing. It feels like a random grab-bag of stuff without a structural focus on how Bash (a) implements a POSIX shell, and (b) offers extensions.
At least on my Leopard (and previous Tiger), it is Bash. — ww <small>—Preceding [[Wikipedia:Signatures|unsigned]] comment added by [[Special:Contributions/118.26.230.12|118.26.230.12]] ([[User talk:118.26.230.12|talk]]) 17:00, 15 April 2008 (UTC)</small><!-- Template:UnsignedIP --> <!--Autosigned by SineBot-->
 
The ordering of the details makes little sense, mixing POSIX features and extensions together.
== How to test for file extensions ==
 
Some writing indicate poor understanding of the shell itself, mixing terminology, conflating "terminal" and "shell" as if they were the same thing. Some citations don't actually say what the text does. (For example, it says that "trap" was a new feature in version 2; it wasn't, it was there in version 1.)
I suspect this is the wrong place for this (that's why I'm not putting it in the article) but this little tip needs to be better promoted, so if you know of a better place for it, please move it there. In any case...
 
The "grab bag" feel of this whole article makes me think that it should be ''substantially'' cut down, referencing other (more reliable) sources for actual timelines and feature descriptions. All explanations of POSIX features should be cut out and moved to an article about the POSIX shell. [[User:Martin Kealey|Martin Kealey]] ([[User talk:Martin Kealey|talk]]) 05:01, 13 June 2025 (UTC)
When writing a bash script which should do different things based on the the extension of a file, the following pattern is helpful.
 
:It's a story, Martin. [[User:Blush30720|Blush30720]] ([[User talk:Blush30720|talk]]) 22:31, 6 July 2025 (UTC)
#filepath should be set to the name(with optional path) of the file in question
:"All explanations of POSIX features should be cut out and moved to an article about the POSIX shell."
<pre>
:I disagree for these reasons: 1) POSIX mode is a core component of the Bash program, the article is about the Bash program, therefore the article should include information on POSIX mode; 2) People use Bash to execute #!/bin/sh scripts all the time, there is no official reference implementation of the POSIX specification, and all Unix-like shells which implement some or all of the POSIX specification do so in slightly or very different ways, therefore, any discussion of how Bash implements the POSIX specification should be included within the article about the Bash program. [[User:Blush30720|Blush30720]] ([[User talk:Blush30720|talk]]) 23:12, 6 July 2025 (UTC)
ext=${filepath##*.}
:I agree, and this article is generally difficult to read for a non-technical expert, as its structure more resembles an instruction manual than a encyclopedia entry. At a minimum, such content deserves its own page, perhaps ''Bash internals''? [[User:OceanLoop|OceanLoop]] ([[User talk:OceanLoop|talk]]) 01:35, 26 August 2025 (UTC)
if [[ "$ext" == txt ]] ; then
::OceanLoop,
#do something with text files
::"''Misleading edit summaries," is really quite incorrect, I am sure, and, based upon a solely partial reading.'' I've reverted some of your edits because they were disruptive. I'm trying to clarify the prose and the ideas. Writing can be messy. It's a work in progress. I suggest you delete either your own contributions or post to this talk page before deleting things. Given that, I also have this concern that you've voiced, that the page may be too much of a how-to manual, so I've put the How-to banner at the top of the article, to reflect this concern. Please take care. [[User:Blush30720|Blush30720]] ([[User talk:Blush30720|talk]]) 23:15, 26 August 2025 (UTC)
fi
:::Do not revert any more edits until you address the feedback provided by multiple users on this Talk page. Please start by reading [[WP:NOTHOWTO]]. If you need additional community consensus, ask for help in the [[WP:TEAHOUSE|Teahouse]]. Thank you. [[User:OceanLoop|<b style="background-image:linear-gradient(45deg,#268bd2,#6c71c4,#d33682,#dc322f);border:1px solid #fdf6e3;border-radius:1em;font-variant:small-caps;padding:0 1em;color:#fdf6e3;">🌊 oceanloop</b>]] 00:00, 27 August 2025 (UTC)
</pre>
::::I'll revert an edit when it's harmful, OceanLoop. You can stop or I can look into getting you banned. [[User:Blush30720|Blush30720]] ([[User talk:Blush30720|talk]]) 00:09, 27 August 2025 (UTC)
:::::[[WP:EDITWAR|Edit warring]] is not productive and against the Wikipedia rules. Please seek community consensus for your changes using this Talk page. [[User:OceanLoop|<b style="background-image:linear-gradient(45deg,#268bd2,#6c71c4,#d33682,#dc322f);border:1px solid #fdf6e3;border-radius:1em;font-variant:small-caps;padding:0 1em;color:#fdf6e3;">🌊 oceanloop</b>]] 00:12, 27 August 2025 (UTC)
::::::Honestly [[User:Blush30720|Blush30720]] ([[User talk:Blush30720|talk]]) 00:28, 27 August 2025 (UTC)
::::::Thank you for volunteering to teach me about Wikipedia [[User:Blush30720|Blush30720]] ([[User talk:Blush30720|talk]]) 00:30, 27 August 2025 (UTC)
::::::The only person edit warring is you, OceanLoop [[User:Blush30720|Blush30720]] ([[User talk:Blush30720|talk]]) 00:46, 27 August 2025 (UTC)
 
== It's a story ==
(My source for this is the [http://www.splike.com/howtos/bash_faq.html#Get+a+file%27s+basename%2C+dirname%2C+extension%2C+etc%3F slike.com Bash FAQ].
Maybe this should go in the Wikibook on this subject, or in some kind of Bash [[Cookbook]]? --[[User:JesseW|JesseW]] 21:54, 21 July 2005 (UTC)
 
The process of learning how to use Bash includes understanding what things like ASCII and POSIX are. The process of unearthing The Story of Bash involves understanding where things like ASCII and POSIX come from and why. Is there exess dross in the process? Yes; that is inevitable. Is it bereft of purpose? By no means. Are the excess lists easily clicked-passed using the Table of Contents or the PageDown button? Yes. Are seemingly well-known aphorisms debunked as myths in the process? Yes: "rc" does not stand for 'resource configuration,' and is in fact rooted in the term "RUNCOM." Is something like that useful? In my opinion, very much so. Discussion? [[User:Blush30720|Blush30720]] ([[User talk:Blush30720|talk]]) 22:40, 6 July 2025 (UTC)
:I'd suggesting starting a new chapter in the wikibook.... how about [[:wikibooks:Bourne Shell Scripting/Cookbook]]? [[User:Lupin|L]][[User talk:Lupin|upin]] 23:48, 21 July 2005 (UTC)
 
:@[[User:Blush30720|Blush30720]] While I appreciate your spirited contributions, the article has become somewhat of a textbook-style guide to using Bash and not an article about Bash and its respective history, accomplishments, and other significance, as Wikipedia guidelines require. Much of the content you are adding is liable to be removed under [[WP:NOTHOW]] so I recommend discussing your strategy here first. [[User:OceanLoop|OceanLoop]] ([[User talk:OceanLoop|talk]]) 02:37, 26 August 2025 (UTC)
::Ok, I've moved it there. That will be my first real edit to Wikibooks... Maybe something will get started... --[[User:JesseW|JesseW]] 01:05, 22 July 2005 (UTC)
 
== Programming structures 2 ==
A note on the code above:
- first, it's not correct if the file doesn't contain any dot. Like a file called "txt" will be said to have a .txt extension while it doesn't
- second, it's a non sh syntax for which there is a better sh equivalent (it's preferable to write a script using a standard syntax rather that the syntax of one specific version of one specific shell implementation):
case $filepath in
?*.txt)
# do something with text files
;;
esac
<small>—Preceding [[Wikipedia:Signatures|unsigned]] comment added by [[User:Stephane Chazelas|Stephane Chazelas]] ([[User talk:Stephane Chazelas|talk]] • [[Special:Contributions/Stephane Chazelas|contribs]]) 00:17, September 10, 2006</small><!-- Template:Unsigned2 -->
 
Why "Programming structures 2"? What is the distinction between "Programming structures 1" and "Programming structures 2"? Same for Info 1 vs Info 2. — [[User:GhostInTheMachine|GhostInTheMachine]] <sup>[[User talk:GhostInTheMachine|talk to me]]</sup> 08:52, 10 August 2025 (UTC)
== Linux vs. GNU/Linux ==
 
:''The TOC structure is based on the parser's order of operations. The explanations in each subsection build from the explantions in the previous subsections, so some newbie can read the full document top to bottom and have 98% of it reasonably make sense.'' [[User:Blush30720|Blush30720]] ([[User talk:Blush30720|talk]]) 02:53, 13 August 2025 (UTC)
I can't help but feel that [http://en.wikipedia.org/w/index.php?title=Bash&curid=4547&diff=21452587&oldid=21445735 this change] is in factual error. As Bash is a GNU product, on a presumptive non-GNU-based Linux system, it would not be the default shelll. Please don't turn this into a flamewar over the term GNU/Linux vs. the name Linux alone; this is merely an inquiry into whether a non-GNU-based Linux distribution would use Bash as its default shell.
[[User:Jouster|Jouster]] 20:45, 22 August 2005 (UTC)
 
== Anchors ==
:I think its alright the way it is. You see, in my opinion, the word Linux here imply the kernel, not the who operating system. If it was the later, I think the edit would have been a mistake. Now, some bash tricks [http://ask.slashdot.org/comments.pl?sid=169444&cid=14127668] <small>—Preceding [[Wikipedia:Signatures|unsigned]] comment added by [[User:Wk muriithi|Wk muriithi]] ([[User talk:Wk muriithi|talk]] • [[Special:Contributions/Wk muriithi|contribs]]) 16:37, November 29, 2005</small><!-- Template:Unsigned2 -->
 
Is there a reason that almost every section heading has an anchor html tag? Wiki markup has its own way to link to sections, and the current formatting causes clutter and throws up {{CW|85}} errors. [[User:Cardboard Moose|Moose]] ([[User talk:Cardboard Moose|talk]]) 08:46, 28 August 2025 (UTC)
== Bash commands ==
 
:There seems to be little reason or intention behind most of the revisions to this article; I would remove anything wrong on sight. [[User:OceanLoop|<b style="background-image:linear-gradient(45deg,#268bd2,#6c71c4,#d33682,#dc322f);border:1px solid #fdf6e3;border-radius:1em;font-variant:small-caps;padding:0 1em;color:#fdf6e3;">🌊 oceanloop</b>]] 14:37, 28 August 2025 (UTC)
How about a list of Bash commands? --[[User:88.111.52.30|88.111.52.30]] 15:48, 29 December 2005 (UTC)
 
:Probably not. Such a list is not particularly encyclopedic or interesting- Wikipedia is not a repository for manuals after all. --[[User:Marudubshinki|Maru]] [[User talk:Marudubshinki|(talk)]] [[Special:Contributions/Marudubshinki|Contribs]] 18:12, 30 December 2005 (UTC)
 
:I think it'd be worth mentioning that using the <tt>help</tt> command will bring up Bash-integrated commands (which are noteworthy different than those in <tt>/bin</tt> ). Particularly, using ''foreground'' (<tt>fg</tt>) and ''background'' (<tt>bg</tt>). Likewise, how the shell interprets keybindings such as Ctrl-Z and Ctrl-C. [[User:69.22.210.109|69.22.210.109]] 19:05, 25 July 2006 (UTC)
 
== Pipes ==
I have to say that I'm a little disappointed by the lack of the discussion of pipes. <small>—Preceding [[Wikipedia:Signatures|unsigned]] comment added by [[User:69.25.215.133|69.25.215.133]] ([[User talk:69.25.215.133|talk]] • [[Special:Contributions/69.25.215.133|contribs]]) 17:29, January 12, 2006</small><!-- Template:Unsigned2 -->
:Agreed, more elaboration on pipes & filters, and their use vis-a-vis "everything is a file" and <tt>/proc</tt> would greatly improve this article. [[User:69.22.210.109|69.22.210.109]] 19:07, 25 July 2006 (UTC)
::''Everything is a file is great'', but it's an operating system feature, and bash (by design) doesn't know anything about it. Many platforms on which bash works just fine don't have /proc or /dev/tcp or anything else along those lines. --<b>TotoBaggins</b> 05:22, 11 March 2007 (UTC)
 
== Integer Mathematics ==
I don't really understand this:
 
"A major limitation of the Bourne shell is that it cannot perform integer calculations without spawning an external process. Bash can perform in-process integer calculations using the ((...)) command and the $[...] variable syntax, as follows:"
 
So it can't do calculations without spawning an external process, ok... but wait, here's how to do it 'in-process'? Confused. --Ling
 
'''Bourne''' can't do integer calcs in process, but '''Bash''' can. [[User:Masterdriverz|Masterdriverz]] 17:21, 13 May 2006 (UTC)
 
== OpenBSD ==
 
Some of the bits in here don't work on OpenBSD, although they do on Linux. <small>—Preceding [[Wikipedia:Signatures|unsigned]] comment added by [[User:66.192.62.82|66.192.62.82]] ([[User talk:66.192.62.82|talk]] • [[Special:Contributions/66.192.62.82|contribs]]) 15:39, July 26, 2006</small><!-- Template:Unsigned2 -->
 
:Could you be more specific? Which bits don't work on OpenBSD? --[[User:Marudubshinki |maru]] [[User talk:Marudubshinki| (talk)]] [[Special:Contributions/Marudubshinki | contribs]] 00:05, 27 July 2006 (UTC)
 
== Unsorted comments about the bash page ==
 
First, about the credit. I don't think any of the feature described in the page was of the bash authors' invention. Most if not all features are copied from other shells: ksh for the syntax, csh/tcsh for the history and user interface and one or two zsh features. Maybe those features would be better introduced in the ksh/csh/zsh pages instead.
 
Minor point:
 
it should be:
 
echo "$((...))" instead of echo $((...))
as bash performs word splitting upon arithmetic expansion in that case (contrary to pdksh or zsh for instance).
 
It may be good to say that $[...] shouldn't be used as it's not a standard sh syntax contrary to $((...)).
 
The exit status of ((...)) is 0 or 1 depending on whether the expression resolves to 0 or not (a non-zero expression means "true" so a 0 exit status). So ((1+1)) is true and ((1-1)) is false.
 
bash has several I/O redirection syntaxes that the traditional Bourne shell lacks. bash can redirect standard output and standard error at the same time using this syntax:
 
The Bourne shell doesn't lack that. bash is only providing with a short cut. &> foo (why didn't bash just used the same as csh or zsh: >& ?) is the same as > foo 2>&1.
 
<<< 'string' is inherited from ksh93 which inherited it from zsh which inherited it from rc.
 
The regular expression syntax is the same as that documented by the regex(7) man page.
 
That regex man page when it exists documents several regexp formats. bash implements the POSIX extended regexps.
 
About startup scripts, it should be noted that some Linux distributions for instance may interfer with that by changing some default configure values at compile time (like enabling a system-wide bashrc or disabling the sourcing of bashrc on rsh or ssh connections). <small>—Preceding [[Wikipedia:Signatures|unsigned]] comment added by [[User:Stephane Chazelas|Stephane Chazelas]] ([[User talk:Stephane Chazelas|talk]] • [[Special:Contributions/Stephane Chazelas|contribs]]) 00:56, September 10, 2006</small><!-- Template:Unsigned2 -->
 
:You seem to know a lot about the various shells, so don't be shy about improving the article itself rather than noting its problems in here. Thanks! --<b>TotoBaggins</b> 05:15, 11 March 2007 (UTC)
 
== Bash special characters ==
 
For example, the character % and & does have a special meaning. So, say I dump something to stdout, I need to escape those characters. It would be nice to have a list here because [[printf]] won't work as expected.
Sure, I know you can do all the aliases you want. I know it's likely to have been listed in the docs, but I'm rather sure it could be a nice addition and does not seem to require much work by people having to deal with this all days.
Thanks!<br />
[[User:83.190.231.93|83.190.231.93]] 21:33, 11 December 2006 (UTC)
 
== Article Cleanup Co-Ordination Point ==
 
<div class="metadata">
{| style="width:100%;background:none"
! bgcolor="#abcdef" colspan="2" bgcolor="#abcdef" | Cleanup Co-ordination
|-
| width=60 bgcolor="#ffdead" |[[Image:Janitor's bucket with mop.jpg|100px]]
|bgcolor="#ffdead" | '''This article has recently been tagged as requiring [[WP:CU|cleanup]] to meet Wikipedia's [[WP:STYLE|quality standards]].'''<br>
The article may have been flagged as needing '''cleanup''' because it has been suggested that:<br>
*the article needs formatting, proofreading, or rephrasing in comprehensible English.
*the article has multiple overlapping problems.
*the article is very short and might need expanding, removal or merging with a broader article<br>
For a full list of possible problems see [[Wikipedia:Manual of Style]].
 
As part of the cleanup process, the automated bot [[User:PocKleanBot|PocKleanBot]] has generated this notice as a focus of cleanup efforts, and also contacted several contributing editors of the article to bring their attention to the problem. You should use this section to discuss possible resolution of the problem and achieve consensus for action. Only when there is a consensus that the article is now cleaned up should you then de-list it by deleting the cleanup tag from the article, this causes the article to drop off the monthly cleanup-needed list page.
|-
|colspan="2" bgcolor="white" |
===Discussion===
|}</div>
 
: I'd say a lot of the examples should be removed or moved to [[Wikibooks]] if they're not there already. <s>Concepts like [[I/O redirection]] need only be linked to the articles which describe them, and a brief introduction given here.</s> [edit - first we need to create the I/O redirection article :-]
: Some random questions it might answer:
:* Does it have a larger overhead than other shells, as it does have a lot of features?
:* Is there a port for Mac or OSX (I would assume so - also is it the default for the X terminal thing)?
:* For builtin commands like test and pwd which also have an entry in /bin, are they really builtin or does it just call the other program?
:* Bash shares a lot of features in common with [[perl]] - but perl is generally used for web applications, but why? Is it less secure, harder to write complex applications in, etc?
: One final fact (from the bash docs), when bash is run through a symlink called "sh", it will mimic the historical [[POSIX]] sh functionality more closely. --[[User:H2g2bob|h2g2bob]] 10:41, 20 March 2007 (UTC)
 
== Versions ==
Anyone want to mention the differences between versions?
I thought there was a version 1.0 and a version 2.0.
Am I correct? Anyone want to mention this? --[[User:Bill.albing|Bill.albing]] 19:17, 21 December 2006 (UTC)
<math>Insert formula here</math>
 
==Elements of Style==
Some people write admirably well considering they're not professional writers but in general Wiki would benefit by trained proofreaders. Another recurring annoyance is how people in the US (possibly North America) insist on putting double space after a full stop when they should know by now it's not recognised by HTML. This latter fact is most likely due to TBL fortuitously not being educated in the US or NA. Also, cutting down, on the number of, commas would greatly, improve, the readability, of Wiki, articles. As reference try visiting a major UK news site and see how English is supposed to be written: it's written to be read, not to be spoken. The comma is not a grammatically correct replacement for 'uh' or 'um'. <small>—Preceding [[Wikipedia:Signatures|unsigned]] comment added by [[User:62.1.24.107|62.1.24.107]] ([[User talk:62.1.24.107|talk]] • [[Special:Contributions/62.1.24.107|contribs]]) 12:18, February 4, 2007</small><!-- Template:Unsigned2 -->
:So web browsers compress white space. So what? Typing classes for decades taught double-space-after-full-stop. I don't think people's habits are going to change any time soon. ⇔ <span style="font-family: Eurostile, Charcoal, Virtue, Chicago;">[[User:ChristTrekker|ChristTrekker]]</span> 16:28, 10 November 2008 (UTC)
 
== Tutorial stuff? ==
 
I'm removing this all. It gets bigger every time I look at the article. If we need specific comparisons to other shells then exaples might be okay, but not the manual we have now (which may as well be in [[yiddish]] as far as casual users are concerned). [[User:Thumperward|Chris Cunningham]] 12:12, 10 May 2007 (UTC)
 
: I reverted your May 10th removal of most of the content from the bash page. Wikipedia shouldn't be dumbed down for the layman in all cases -- leave that for the intro. As a quick example: [[http://en.wikipedia.org/wiki/Genetic_code#Variations_to_the_Standard_Genetic_Code Variations to the Standard Genetic Code]]. Information about how bash handles & behaves with variables, whitespace, I/O redirection, etc is valid. [[User:Jeff Carr|Jeff Carr]] 15:59, 10 June 2007 (UTC)
 
:: This isn't a manual. It's not a case of "dumbing it down for the layman", it's a case of making it an interesting article, and technical guides do not make for interesting articles. The whole lot belongs on Wikibooks. [[User:Thumperward|Chris Cunningham]] 09:14, 12 June 2007 (UTC)
 
: I fully agree that the details and examples in the [[Bash#Integer_mathematics|integer math]] and [[Bash#String_comparison|string comparison]] sections '''are valid''' to be included in the article. I have promoted them from sub-secions under start up scripts to be main sections. Chris Cunningham - '''rather than''' the quick and easy edit to '''remove them all''', why not take the time to '''summarize them''', and add links to the appropriate articles with details. See '''[[test (Unix)]]'''. --[[User:Unixguy|Unixguy]] 17:42, 11 June 2007 (UTC)
 
:: You're pointing to a transcoded man page as an example of a good article? That's the exact opposite of what we should be aiming for. [[User:Thumperward|Chris Cunningham]] 09:14, 12 June 2007 (UTC)
 
:: ...Actually, having just gone and tried to "summarise" the stuff from the deleted sections that is actually useful to the article, I find that I already ''did'' take all the relevant bits and add them to the features section. So all that was deleted was the egrecious teach-yourself-unix shell scripting guide which specifically says it isn't bash-specific, and a couple of pages of example code. Not worth keeping. [[User:Thumperward|Chris Cunningham]] 09:48, 12 June 2007 (UTC)
 
: Ok, after looking at the examples you removed more closely, it does appear that there is more detail than is needed for this article. I went ahead and placed the removed sections here on the talk page for future reference. --[[User:Unixguy|Unixguy]] 23:08, 13 June 2007 (UTC)
 
: '''disagree''' Here is my vote if people feel like voting to find consensus. I do think that for this subject matter, the removed sections are relevant. [[User:Jeff Carr|Jeff Carr]] 20:31, 25 September 2007 (UTC)
 
== Removed sections ==
 
Following are the removed tutorial sections. --[[User:Unixguy|Unixguy]] 23:03, 13 June 2007 (UTC)
 
: I've moved these to [[Bash syntax and semantics]] as the content was handled in a similar way for [[Python syntax and semantics]]. [[User:Jeff Carr|Jeff Carr]] 00:02, 24 October 2007 (UTC)
 
== The BASH' lack of simplification ==
The Bourne Again Shell has, during its long lifetime, gained several improvements and thus new programs. This has had as a result that to perform a same specific task, the user is bothered with a amount of overlapping programs.
 
Aldough Linux' self-correcting community might have resolved this earlier, as it is no longer actively used (now graphic interfaces are used instead) no corrections have been made for these flaws. Besides a large amount of overlapping programs, the command line interface has also a number of features which can be dismissed and replaced by other existing commands, hereby making a huge simplification possible.
 
''Examples on this are:''
 
* viewing of a text file: this can be done by an excessive amount of programs as vi, pico, less, more, ...
* the unnecessairy grep-command; instead locate with a specific option (thus locate -xx) can perform this function if locate is altered so it allows this
 
* The unnecessairy possibility of using relative pathnames, this can be replaced by only allowing absolute pathnames
* The unnecessairy pwd-command; instead the current directory can just be shown in the command line itself (similar as in DOS).
* The unnecessairy append I/O redirection and piping option; instead of using append (>>) one can simply use overwrite (>) instead
* The write permissions included with files should no longer include type-information (only gives extremely limited information and would be better checked with the filename-extension. Also, support for a sticky bit (-t permission) should be dropped. Thus instead of presenting eg drwxrw-rw- this would become rwxrw-rw-
* The possible use of general points in folders (not being part of the extension) should be dropped. Thus folders named foo.bar etc can no longer be created. This has caused allot of confusion in the past.
* Finally, commands as ls for listing folders, ... are best changed to list. Changing the commands to these makes it easier to remember them.
 
More suggestions may be found at [http://docs.google.com/Doc?id=dcwtr665_190fz23z2gx My Blog's Linux Improvements-doc]
''Hoping this article-segment will qualify for wikipedia, I have already implemented it into the BASH-article''.
 
--[[User:KVDP|KVDP]] 14:52, 9 September 2007 (UTC)--
 
:Elimination of relative paths? grep unnecessary, just rewrite locate? pwd unnecessary? Remove append in favor of overwrite? Is this a joke? You're teasing. [[User:74.64.85.88|74.64.85.88]] 16:11, 9 September 2007 (UTC)
 
Silly KVDP! Choice is what makes GNU/Linux so great. Following your train of thought I would guess that you think all cars should be the same color because there is no "need" for choice. I'll just stop there because I do not want to feed the troll any more. [[User:Donkdonk|Donkdonk]] ([[User talk:Donkdonk|talk]]) 20:42, 15 April 2008 (UTC)
 
==Citations==
The following papers
* http://tiswww.case.edu/php/chet/bash/rose94.pdf
* http://tiswww.case.edu/php/chet/bash/article.pdf
Contain a number of citations that could be added to this article. --[[User:BrianFennell|BrianFennell]] ([[User talk:BrianFennell|talk]]) 22:13, 28 May 2008 (UTC)
 
== Pronunciation ==
 
Is anyone up for a [[International Phonetic Alphabet|IPA]]-pronunciation code? There is some controversy about how the name is pronounced. An IPA clarification would be in place, and would increase the quality of the article.
[[Special:Contributions/89.8.51.17|89.8.51.17]] ([[User talk:89.8.51.17|talk]]) 16:40, 1 October 2008 (UTC)
 
: Where exactly is this controversy? [[user:thumperward|Chris Cunningham (not at work)]] - [[user talk:thumperward|talk]] 17:03, 1 October 2008 (UTC)
 
"|hello | you|
|this is a good news| do not you think so|"
 
== history of bash development ==
 
From a historical point of view, it would be interesting to note what features were new in bash 2, and what is new in bash 3. Surely there are people running with older versions (I had a box still using bash 1 until a few weeks ago, now up to 2.02), so this would be good to know. [[User:Bill.albing|Bill.albing]] mentioned this almost 2 years ago, but I don't see anything yet. ⇔ <span style="font-family: Eurostile, Charcoal, Virtue, Chicago;">[[User:ChristTrekker|ChristTrekker]]</span> 16:24, 10 November 2008 (UTC)
 
== Regarding blocked bash address ==
 
Hi,
 
I have recently been trying to add a website to the external links section on the 'Bash' page, but this had been deleted a number of times.
 
Having read the reason, I feel that it should qualify to be added to the page. The website was not added solely for adversitement purposes. The function of the website is to provide reviews of Bash learning resources, and therefore offer users a guideline to go by when attempting to learn Bash Scripting. It is part of a final year undergraduate year, however it will be maintained as the function is solely to aid the learning of others in the area of Bash Scripting.
 
 
 
Regards,
 
 
Mustafa <span style="font-size: smaller;" class="autosigned">—Preceding [[Wikipedia:Signatures|unsigned]] comment added by [[Special:Contributions/78.105.87.154|78.105.87.154]] ([[User talk:78.105.87.154|talk]]) 16:29, 5 May 2010 (UTC)</span><!-- Template:UnsignedIP --> <!--Autosigned by SineBot-->
 
== "Unix shell" ==
 
I find it mildly offending. Perhaps "[[GNU|Not Unix]] Shell" rather! [[Special:Contributions/85.77.179.98|85.77.179.98]] ([[User talk:85.77.179.98|talk]]) 20:17, 18 May 2010 (UTC)
*I'm pretty sure BASh was designed for Unix not GNU. It just happens to work on GNU/Linux and other Unix based OSs. [[User:P4lm0r3|P4lm0r3]] ([[User talk:P4lm0r3|talk]]) 18:12, 11 August 2010 (UTC)