Misplaced Pages

Expect

Article snapshot taken from Wikipedia with creative commons attribution-sharealike license. Give it a read and then ask your questions in the chat. We can research this topic together.

Expect is an extension to the Tcl scripting language written by Don Libes . The program automates interactions with programs that expose a text terminal interface. Expect, originally written in 1990 for the Unix platform, has since become available for Microsoft Windows and other systems.

#833166

25-423: Expect is used to automate control of interactive applications such as Telnet , FTP , passwd , fsck , rlogin , tip , SSH , and others. Expect uses pseudo terminals (Unix) or emulates a console (Windows), starts the target program, and then communicates with it, just as a human would, via the terminal or console interface. Tk , another Tcl extension, can be used to provide a GUI . โ€นThe template Manual

50-421: A command-line interface or graphical user interface . This does not include application software bundled within operating systems such as a software calculator or text editor . Utility software Utility software is a program specifically designed to help manage and tune system or application software. It is used to support the computer infrastructure - in contrast to application software , which

75-404: A geography application for Microsoft Windows , or an Android application for education , or a Linux game . Sometimes a new and popular application arises that only runs on one platform , increasing the desirability of that platform. This is called a killer application or killer app , coined in the late 1980s. For example, VisiCalc was the first modern spreadsheet software for

100-684: A contentious debate in the computing community regarding web applications replacing native applications for many purposes, especially on mobile devices such as smartphones and tablets . Web apps have indeed greatly increased in popularity for some uses, but the advantages of applications make them unlikely to disappear soon, if ever. Furthermore, the two can be complementary, and even integrated. Application software can also be seen as being either horizontal or vertical . Horizontal applications are more popular and widespread, because they are general purpose, for example word processors or databases. Vertical applications are niche products , designed for

125-467: A lifetime, or forever). Since the development and near-universal adoption of the web , an important distinction that has emerged, has been between web applications — written with HTML , JavaScript and other web-native technologies and typically requiring one to be online and running a web browser — and the more traditional native applications written in whatever languages are available for one's particular type of computer . There has been

150-747: A particular type of industry or business, or department within an organization. Integrated suites of software will try to handle every specific aspect possible of, for example, manufacturing or banking worker, accounting, or customer service. There are many types of application software: Applications can also be classified by computing platforms such as a desktop application for a particular operating system , delivery network such as in cloud computing and Web 2.0 applications, or delivery devices such as mobile apps for mobile devices . The operating system itself can be considered application software when performing simple calculating, measuring, rendering, and word processing tasks not used to control hardware via

175-411: Is a computer program designed to carry out a specific task other than one relating to the operation of the computer itself, typically to be used by end-users . Word processors , media players , and accounting software are examples. The collective noun " application software " refers to all applications collectively. The other principal classifications of software are system software , relating to

200-412: Is a computer program designed to help people perform an activity. Depending on the activity for which it was designed, an application can manipulate text, numbers, audio, graphics, and a combination of these elements. Some application packages focus on a single task, such as word processing; others called integrated software include several applications. User-written software tailors systems to meet

225-485: Is aimed at directly performing tasks that benefit ordinary users. However, utilities often form part of the application systems . For example, a batch job may run user-written code to update a database and may then include a step that runs a utility to back up the database, or a job may run a utility to compress a disk before copying files. Although a basic set of utility programs is usually distributed with an operating system (OS), and this first party utility software

250-412: Is being considered for merging .โ€บ   Expect serves as a "glue" to link existing utilities together. The general idea is to figure out how to make Expect use the system's existing tools rather than figure out how to solve a problem inside of Expect. A key usage of Expect involves commercial software products. Many of these products provide some type of command-line interface, but these usually lack

275-459: Is not restricted to the "of or on application software" meaning. For example, concepts such as application programming interface (API), application server , application virtualization , application lifecycle management and portable application apply to all computer programs alike, not just application software. Some applications are available in versions for several different platforms; others only work on one and are thus called, for example,

SECTION 10

#1732773399834

300-526: Is occasionally the object of controversy. For example, one of the key questions in the United States v. Microsoft Corp. antitrust trial was whether Microsoft's Internet Explorer web browser was part of its Windows operating system or a separate piece of application software. As another example, the GNU/Linux naming controversy is, in part, due to disagreement about the relationship between

325-489: Is royalty-free and - openly or reservedly- can be run, distributed, modified, reversed, republished, or created in derivative works without any copyright attribution and therefore revocation . It can even be sold, but without transferring the public domain property to other single subjects. Public-domain SW can be released under a (un)licensing legal statement, which enforces those terms and conditions for an indefinite duration (for

350-583: The Linux kernel and the operating systems built over this kernel . In some types of embedded systems , the application software and the operating system software may be indistinguishable from the user, as in the case of software used to control a VCR , DVD player, or microwave oven . The above definitions may exclude some applications that may exist on some computers in large organizations. For an alternative definition of an app: see Application Portfolio Management . The word "application" used as an adjective

375-513: The Windows Store , the term was extended in popular use to include desktop applications. There are many different and alternative ways to classify application software. From the legal point of view, application software is mainly classified with a black-box approach , about the rights of its end-users or subscribers (with eventual intermediate and tiered subscription levels). Software applications are also classified with respect to

400-532: The Apple II and helped sell the then-new personal computers into offices. For Blackberry it was their email software. The shortened term "app" (coined in 1981 or earlier ) became popular, with the 2008 introduction of the iOS App Store , to refer to applications for mobile devices such as smartphones and tablets . Later, with the 2010 introduction of the Mac App Store and the 2011 introduction of

425-497: The circumstances. A common use of Expect is to set up a testing suite for programs, utilities or embedded systems. DejaGnu is a testing suite written using Expect for use in testing. It has been used for testing GCC and remote targets such as embedded development. Expect script can be automated using a tool called 'autoexpect'. This tool observes your actions and generates an Expect script using heuristics. Though generated code may be large and somewhat cryptic, one can always tweak

450-462: The example below. Another example of automated SSH login to a user machine: Various projects implement Expect-like functionality in other languages, such as C# , Java , Scala , Groovy , Perl , Python , Ruby , Shell and Go . These are generally not exact clones of the original Expect, but the concepts tend to be very similar. Application software An application program ( software application , or application , or app for short)

475-468: The generated script to get the exact code. Another example is a script that automates FTP: Below is an example that automates SFTP (with a password): Using passwords as command-line arguments, like in this example, is a huge security hole, as any other user on the machine can read this password by running " ps ". You can, however, add code that will prompt you for your password rather than giving your password as an argument. This should be more secure. See

500-440: The operation of the computer, and utility software ("utilities"). Applications may be bundled with the computer and its system software or published separately and may be coded as proprietary , open-source , or projects. When referring to applications for mobile devices such as phones, the term "app" is more commonly used. In information technology, an application ( app ), an application program , or application software

525-430: The power needed to write scripts . They were built to service the users administering the product, but the company often does not spend the resources to fully implement a robust scripting language. An Expect script can spawn a shell, look up environmental variables, perform some Unix commands to retrieve more information, and then enter into the product's command-line interface armed with the necessary information to achieve

SECTION 20

#1732773399834

550-734: The programming language in which the source code is written or executed, and concerning their purpose and outputs. Application software is usually distinguished into two main classes: closed source vs open source software applications, and free or proprietary software applications. Proprietary software is placed under the exclusive copyright, and a software license grants limited usage rights. The open-closed principle states that software may be "open only for extension, but not for modification". Such applications can only get add-ons from third parties. Free and open-source software (FOSS) shall be run, distributed, sold, or extended for any purpose, and -being open- shall be modified or reversed in

575-409: The same way. FOSS software applications released under a free license may be perpetual and also royalty-free . Perhaps, the owner , the holder or third-party enforcer of any right ( copyright , trademark , patent , or ius in re aliena ) are entitled to add exceptions, limitations, time decays or expiring dates to the license terms of use. Public-domain software is a type of FOSS which

600-437: The user's goal. After retrieving information by interacting with the product via its command-line interface, the script can make intelligent decisions about what action to take, if any. Every time an Expect operation is completed, the results are stored in a local variable called $ expect_out. This allows the script to harvest information to feedback to the user, and it also allows conditional behavior of what to send next based on

625-417: The user's specific needs. User-written software includes spreadsheet templates, word processor macros, scientific simulations, audio, graphics, and animation scripts. Even email filters are a kind of user software. Users create this software themselves and often overlook how important it is. The delineation between system software such as operating systems and application software is not exact, however, and

#833166