我在一个脚本中使用了一个16进制数据,是这样定义变量的
typeset -i a=16#0f
b=$((a + 1))
后面使用了一个简单的计算表达式,能运行正常,当我把这个脚本放到/etc/init.d/目录下随系统自启动时结果就不对了,打印发现a变量在参与后面的计算时总是为空,这是为什么啊?
请问Shell中如何表示一个16进制数据?
-
- 帖子: 19
- 注册时间: 2007-11-10 8:54
- leeaman
- 帖子: 30702
- 注册时间: 2007-02-02 18:14
- 系统: debian sid
-
- 帖子: 19
- 注册时间: 2007-11-10 8:54
Re: 请问Shell中如何表示一个16进制数据?
那请问是怎么写的?leeaman 写了:那里说16进制是这样写的?
我是在一个教程里看的,如果不是这样写的那是怎么写的呢?
- leeaman
- 帖子: 30702
- 注册时间: 2007-02-02 18:14
- 系统: debian sid
Re: 请问Shell中如何表示一个16进制数据?
醉了星星,醉月亮●●●●●The Long Way To Go(*^_^*)
-
- 帖子: 19
- 注册时间: 2007-11-10 8:54
Re: 请问Shell中如何表示一个16进制数据?
呵呵,16进制是这样表示的,只是郁闷得要死,同样一条语句在一个脚本里可以运行,在另外一个脚本里就不能运行了
-
- 帖子: 19
- 注册时间: 2007-11-10 8:54
Re: 请问Shell中如何表示一个16进制数据?
为什么这条语句老是报错:
a=$((16#0f))
错误消息是 arithmetic expression: expecting EOF: "16#0f"
在另外一个脚本里运行又没问题,真郁闷哦
a=$((16#0f))
错误消息是 arithmetic expression: expecting EOF: "16#0f"
在另外一个脚本里运行又没问题,真郁闷哦
-
- 帖子: 82
- 注册时间: 2008-03-06 4:56
Re: 请问Shell中如何表示一个16进制数据?
检查第一行是不是#!/bin/sh
改成#!/bin/bash
这种区别很容易比较出来吧
改成#!/bin/bash
这种区别很容易比较出来吧
-
- 帖子: 19
- 注册时间: 2007-11-10 8:54
Re: 请问Shell中如何表示一个16进制数据?
多谢啊!cosechy 写了:检查第一行是不是#!/bin/sh
改成#!/bin/bash
这种区别很容易比较出来吧
我脚本里是有这一行,只是没放在第一行,因为这个脚本是放在/etc/init.d/目录下自启动的,开头加了一些### BEGIN INIT INFO这样的标准注释,所以就把#!/bin/bash把放到这些注释后面了,改到第一行就OK了,问题解决。