ubuntu shell脚本的指令问题

在看《鸟哥的私房菜》,其中有一些指令在fishshell里是错误的指令,怎么回事呢,是不是要安装什么软件包啊?比如declare这个指令就不能用,写成脚本也不行。。。求高... 在看《鸟哥的私房菜》,其中有一些指令在fish shell里是错误的指令,怎么回事呢,是不是要安装什么软件包啊?比如declare 这个指令就不能用,写成脚本也不行。。。
求高手指点。。。
PS:希望说得具体一点,我是个菜鸟, 解决后另加分。
非常感谢你们的指点,但都没有说到重点。 我想说的是那教程上的某些指令在shell中不能使用,就像是不存在那个指令一样。比如前面提到的declare,就不能用。想知道为什么会出现这种状况?怎么解决?,请高手现指点, 谢谢。。。
(--至于你们说的bash shell,电脑上安装了的,也能正常使用,但同样不能用前面提到的指令,常规指令能用。我喜欢fish 里的语法高亮功能,觉得比较适合像我这种菜鸟。)
展开
 我来答
kwydwuf
2011-01-25 · TA获得超过7411个赞
知道大有可为答主
回答量:1527
采纳率:71%
帮助的人:2009万
展开全部
如果说是 declare 命令不能用,那原因是由于你用的不是bash.如果是其他命令(你最好列出来具体的命令名字),要么是由于你没有使用和《鸟哥》里所使用的同样的shell,要么就是你的系统里没有安装对应的软件。

比方说,有的命令是shell自带的命令,如declare, let 等,如果你发现不能用,那是由于使用的shell 不同或者版本不同。
有的命令不是shell自带命令,而是系统中装的一些工具软件, 比如 find, tar, grep 等等,这种类型的命令数量远大于shell自带命令,在ubuntu默认安装中,很可能有一些没有安装,需要你自己去装。
所以具体你缺什么命令,不一定是shell的问题,也可能是你没有安装对应软件包。

最后,建议你还是用bash,毕竟是最流行的shell,大多数人,大多数教程,都讲得是它,所以不建议你初学时用其他shell,等对linux shell有一定了解后,再换到自己喜欢用的shell会比较合适。
cdunna
2011-01-23 · TA获得超过1676个赞
知道小有建树答主
回答量:1.9万
采纳率:0%
帮助的人:1595万
展开全部
补充和修正楼上的:

while :
-------------- :表示空指令,相当于 while true,一直循环

if ; then
--------------这里条件可以为空吗?我也没见过。

sleep 10
--------------暂停10秒

==============================================================
那条件就是:上面的ping指令执行失败,即网断。
$? 表示上一条命令的执行结果,0表示成功,其他值表示失败。
所以 if 语句这样写:

if [ $? -ne 0 ]; then
kill -9 `pidof mystar`
./mystar &
fi

网断的情况下就强制杀掉 mystar 进程然后将它重新启动。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
coolhty
2011-01-23 · 超过29用户采纳过TA的回答
知道答主
回答量:156
采纳率:0%
帮助的人:0
展开全部
U默认的SH是dash。

dash和bash的区别
使用dash时用sudo dpkg-reconfigure dash,按提示操作就可以了。
使用bash时用sudo dpkg-reconfigure bash
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
键盘雀跃
2011-01-23 · TA获得超过981个赞
知道小有建树答主
回答量:1546
采纳率:0%
帮助的人:481万
展开全部
用bash shell就行
sudo apt-get install bash
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式