5.4.4 使用declare指定变量的类型

declare命令式Bash的内部命令,用于声明和修改变量的属性。它与Bash的另一个内部命令typeset的用法和用途完全相同。
如果直接使用declare命令,不指定变量名,将显示所有的变量的值:

declare
BASH=/bin/bash
BASHOPTS=checkwinsize:cmdhist:complete_fullquote:expand_aliases:extglob:extquote:force_fignore:histappend:interactive_comments:progcomp:promptvars:sourcepath
BASH_ALIASES=()
BASH_ARGC=()
BASH_ARGV=()
BASH_CMDS=()
BASH_COMPLETION_COMPAT_DIR=/etc/bash_completion.d
BASH_LINENO=()
BASH_REMATCH=()
BASH_SOURCE=()
BASH_VERSINFO=([0]="4" [1]="3" [2]="48" [3]="1" [4]="release" [5]="x86_64-pc-linux-gnu")
BASH_VERSION='4.3.48(1)-release'
CLUTTER_IM_MODULE=xim
COLUMNS=80
COMPIZ_CONFIG_PROFILE=ubuntu
COMP_WORDBREAKS=$' \t\n"\'><=;|&(:'
DBUS_SESSION_BUS_ADDRESS=unix:abstract=/tmp/dbus-5mDaykem4P
DEFAULTS_PATH=/usr/share/gconf/ubuntu.default.path
DESKTOP_SESSION=ubuntu
DIRSTACK=()
DISPLAY=:0
EUID=1000
GDMSESSION=ubuntu
GDM_LANG=en_US
...

使用-r选型

declare命令将把指定的变量定位只读变量,这些变量将不能再被赋予新值或被清除。

declare -r var=1
var=2
	-bash:var:readonly variable 
unset var
	-bash:unset:var:cannot unset:readonly variable

使用-i选项

declare命令将把指令的变量定义为整数型变量。赋予整数型变量的任何类型是都将被转换为整数,下面是示例:

declare -i NUMBER
NUMBER=1
echo “The number is ${NUMBER}”
	The number is 1
NUMBER=one
echo “The number is ${NUMBER}”
	The number is 0
	echo “The number is ${NUMBER}NUMBER=9/2
echo “The number is ${NUMBER}”
	The number is 4	

使用-x选项

declare命令将把指定的变量通过环境输出到后续的命令。

使用-p选项

declare命令将显示的制定变量的属性和值。

declare -p NUMBER
	declare -i NUMBER="4"

有时一个任务或命令会运行很长时间,如果不能确定这个任务什么时候才能结束,这时就最好把它放在后台去运行。然而一旦退出系统,这个任务将被终止,你该怎么办?
想必你已经知道答案了,使用nohup命令就可以解决这个问题,他能让运行的命令或脚本在你退出系统后继续在后台运行。其命令的语法格式如下所示:

nohup COMMAND [ARG]... &
  1. COMMAND:shell脚本或命令的名称
  2. [ARG]:脚本或命令的参数
  3. &:nohup命令不能自动地将任务放在后台运行,你必须明确地在nohup命令的末尾添加操作控制符&。
    使用nohup命令运行一个script.sh
nohup /bin/bash script.sh
[1] 1569
nohup: ignoring input and appending output to 'nohup.out'

可以看到上面的例中有输出"[1] 1569",其中“[1]”是任务编号,"1569"是此后台任务的进程号。上面示例的最后一行输出“nohup: ignoring input and appending output to ‘nohup.out’”,它表示脚本“/bin/bash script.sh”运行输出的所有内容将被写入到当前目录下的文件nouhup.out中。

  • 5
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值