Chinaunix

标题: 关于shell的两个疑问 [打印本页]

作者: bikkuri    时间: 2015-02-13 11:58
标题: 关于shell的两个疑问
大家好,我有两个问题向大家请教。

1、如何知道当前正在运行的系统shell是什么?(是/bin/sh还是/bin/bash?)
2、在写脚本的时候,第一行用#!来指定解释执行这个脚本的shell。
但是假如我希望如果系统中没有/bin/sh,或者如果/bin/sh是指向另外一个shell的符号链接的话就用/bin/bash。
这样的话脚本应该怎样写呢?

谢谢。
作者: zxy877298415    时间: 2015-02-13 12:27
回复 1# bikkuri
1.echo $SHELL
2.把可能的shell按着顺序写不知道行不行!坐等大师

   
作者: jason680    时间: 2015-02-13 13:06
回复 1# bikkuri

using bash directly ...

#!/bin/bash
   
作者: bikkuri    时间: 2015-02-13 15:58
那如果/bin/bash不存在呢?
我希望如果有/bin/bash(实际文件,不是符号链接)就用/bin/bash;没有就用/bin/sh(实际文件,不是符号链接);如果都没有就报错退出。
应该怎么写呢?

jason680 发表于 2015-02-13 13:06
回复 1# bikkuri

using bash directly ...

作者: reyleon    时间: 2015-02-13 16:09
回复 4# bikkuri

你这个恐怕办不到吧, 只能指定一个 #! 呐.
作者: reb00t    时间: 2015-02-13 16:11
  1. #!/usr/bin/env bash
复制代码
这样呢?
作者: bikkuri    时间: 2015-02-13 16:51
谢谢您的指点。
以前见过这种写法。
没太注意,原来是做这个用的。

reb00t 发表于 2015-02-13 16:11
这样呢?

作者: zooyo    时间: 2015-02-14 19:14
提示: 作者被禁止或删除 内容自动屏蔽
作者: zooyo    时间: 2015-02-14 19:18
提示: 作者被禁止或删除 内容自动屏蔽
作者: bikkuri    时间: 2015-02-14 23:28
我就是因为在一个debian系统下/bin/sh指向/bin/dsh,导致程序执行异常,所以有此一问。
作者: zooyo    时间: 2015-02-14 23:41
提示: 作者被禁止或删除 内容自动屏蔽
作者: yyt030    时间: 2015-02-15 09:08
回复 1# bikkuri
1: echo $0
2: /usr/bin/env bash

   




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2