<html lang="en">
<head>
<title>Word Expansion - The GNU C Library</title>
<meta http-equiv="Content-Type" content="text/html">
<meta name="description" content="The GNU C Library">
<meta name="generator" content="makeinfo 4.13">
<link title="Top" rel="start" href="index.html#Top">
<link rel="up" href="Pattern-Matching.html#Pattern-Matching" title="Pattern Matching">
<link rel="prev" href="Regular-Expressions.html#Regular-Expressions" title="Regular Expressions">
<link href="http://www.gnu.org/software/texinfo/" rel="generator-home" title="Texinfo Homepage">
<!--
This file documents the GNU C library.

This is Edition 0.12, last updated 2007-10-27,
of `The GNU C Library Reference Manual', for version
2.8 (Sourcery G++ Lite 2011.03-41).

Copyright (C) 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2001, 2002,
2003, 2007, 2008, 2010 Free Software Foundation, Inc.

Permission is granted to copy, distribute and/or modify this document
under the terms of the GNU Free Documentation License, Version 1.3 or
any later version published by the Free Software Foundation; with the
Invariant Sections being ``Free Software Needs Free Documentation''
and ``GNU Lesser General Public License'', the Front-Cover texts being
``A GNU Manual'', and with the Back-Cover Texts as in (a) below.  A
copy of the license is included in the section entitled "GNU Free
Documentation License".

(a) The FSF's Back-Cover Text is: ``You have the freedom to
copy and modify this GNU manual.  Buying copies from the FSF
supports it in developing GNU and promoting software freedom.''-->
<meta http-equiv="Content-Style-Type" content="text/css">
<style type="text/css"><!--
  pre.display { font-family:inherit }
  pre.format  { font-family:inherit }
  pre.smalldisplay { font-family:inherit; font-size:smaller }
  pre.smallformat  { font-family:inherit; font-size:smaller }
  pre.smallexample { font-size:smaller }
  pre.smalllisp    { font-size:smaller }
  span.sc    { font-variant:small-caps }
  span.roman { font-family:serif; font-weight:normal; } 
  span.sansserif { font-family:sans-serif; font-weight:normal; } 
--></style>
<link rel="stylesheet" type="text/css" href="../cs.css">
</head>
<body>
<div class="node">
<a name="Word-Expansion"></a>
<p>
Previous:&nbsp;<a rel="previous" accesskey="p" href="Regular-Expressions.html#Regular-Expressions">Regular Expressions</a>,
Up:&nbsp;<a rel="up" accesskey="u" href="Pattern-Matching.html#Pattern-Matching">Pattern Matching</a>
<hr>
</div>

<h3 class="section">10.4 Shell-Style Word Expansion</h3>

<p><a name="index-word-expansion-884"></a><a name="index-expansion-of-shell-words-885"></a>
<dfn>Word expansion</dfn> means the process of splitting a string into
<dfn>words</dfn> and substituting for variables, commands, and wildcards
just as the shell does.

   <p>For example, when you write &lsquo;<samp><span class="samp">ls -l foo.c</span></samp>&rsquo;, this string is split
into three separate words&mdash;&lsquo;<samp><span class="samp">ls</span></samp>&rsquo;, &lsquo;<samp><span class="samp">-l</span></samp>&rsquo; and &lsquo;<samp><span class="samp">foo.c</span></samp>&rsquo;. 
This is the most basic function of word expansion.

   <p>When you write &lsquo;<samp><span class="samp">ls *.c</span></samp>&rsquo;, this can become many words, because
the word &lsquo;<samp><span class="samp">*.c</span></samp>&rsquo; can be replaced with any number of file names. 
This is called <dfn>wildcard expansion</dfn>, and it is also a part of
word expansion.

   <p>When you use &lsquo;<samp><span class="samp">echo $PATH</span></samp>&rsquo; to print your path, you are taking
advantage of <dfn>variable substitution</dfn>, which is also part of word
expansion.

   <p>Ordinary programs can perform word expansion just like the shell by
calling the library function <code>wordexp</code>.

<ul class="menu">
<li><a accesskey="1" href="Expansion-Stages.html#Expansion-Stages">Expansion Stages</a>:             What word expansion does to a string. 
<li><a accesskey="2" href="Calling-Wordexp.html#Calling-Wordexp">Calling Wordexp</a>:              How to call <code>wordexp</code>. 
<li><a accesskey="3" href="Flags-for-Wordexp.html#Flags-for-Wordexp">Flags for Wordexp</a>:            Options you can enable in <code>wordexp</code>. 
<li><a accesskey="4" href="Wordexp-Example.html#Wordexp-Example">Wordexp Example</a>:              A sample program that does word expansion. 
<li><a accesskey="5" href="Tilde-Expansion.html#Tilde-Expansion">Tilde Expansion</a>:              Details of how tilde expansion works. 
<li><a accesskey="6" href="Variable-Substitution.html#Variable-Substitution">Variable Substitution</a>:        Different types of variable substitution. 
</ul>

   </body></html>

