现在的位置: 首页 > 综合 > 正文

linux 下 shell 编程(菜鸟笔记)

2012年03月12日 ⁄ 综合 ⁄ 共 1369字 ⁄ 字号 评论关闭

一个简单的例子:

#!/bin/bash
echo "What's your favourite star?"
select var in "Leehom" "Vae" "Jay" "Jolin"; do
break;
done
echo "You have selected $var"

运行结果:

root@ubuntu:~# ./star.sh
What's your favourite star?
1) Leehom
2) Vae
3) Jay
4) Jolin
#? 1
You have selected Leehom
root@ubuntu:~# 

开始 , 按照网上写的是

#!/bin/sh

然后提示 

select: not found
Syntax error: "done" unexpected

然后,网上说,sh不一定指向bash

bin/sh 是一个软连接,
在windows系统中相当于快捷方式,linux系统的软连接的指向不一定是bash,
如果软连接指向的是bin/bash那么,
bin/sh和bin/bash是一样的,
但如果你的bin/sh指向的是bin/csh或者bin/ksh那么bin/sh与bin/bash是就是一样的了。

改为bash就OK 了~~

==========================================速度来科普==============================

原文来自:http://www.cnblogs.com/liehuzuo/archive/2012/05/08/2490249.html

linux的shell编程中#!/bin/sh和$bash是什么意思

#! /bin/sh 是指此脚本使用/bin/sh来解释执行,#!是特殊的表示符,其后面根的是此解释此脚本的shell的路径。

$bash $表示系统提示符,$ 表示此用户为普通用户,超级用户的提示符是#。

bash是shell的一种,是linux下最常用的一种shell。

$bash的意思是执行一个子shell,此子shell为bash。

 

要注意,在每个脚本的开头都使用"#!",这意味着告诉你的系统这个文件的执行需要指定一个解 释器.#!实际上是一个2字节[1]的魔法数字,这是指定一个文件类型的特殊标记, 换句话说, 在 这种情况下,指的就是一个可执行的脚本(键入man magic来获得关于这个迷人话题的更多详细 信息).在#!之后接着是一个路径名.这个路径名指定了一个解释脚本中命令的程序,这个程序可 以是shell,程序语言或者是任意一个通用程序.这个指定的程序从头开始解释并且执行脚本中 的命令(从#!行下边的一行开始),忽略注释.[2]
如: 1 #!/bin/sh 2 #!/bin/bash 3 #!/usr/bin/perl 4 #!/usr/bin/tcl 5 #!/bin/sed -f 6 #!/usr/awk -f

注意: #! 后边给出的路径名必须是正确的,否则将会出现一个错误消息,通常是 "Command not found",这将是你运行这个脚本时所得到的唯一结果.

如果在脚本的里边还有一个#!行,那么bash将把它认为是一个一般的注释行.

====================================================================================================

抱歉!评论已关闭.