linux
来源:互联网 发布:怎样提高淘宝买家信誉 编辑:程序博客网 时间:2024/05/29 03:58
Linux shell (变量及赋值)
Shell编程中,使用变量无需事先声明,同时变量名的命名须遵循如下规则:
首个字符必须为字母(a-z,A-Z)
中间不能有空格,可以使用下划线(_)
不能使用标点符号
不能使用bash里的关键字(可用help命令查看保留关键字)
需要给变量赋值时,可以这么写:
变量名=值
要取用一个变量的值,只需在变量名前面加一个$ ( 注意: 给变量赋值的时候,不能在"="两边留空格 )
#!/bin/sh
# 对变量赋值:
a="hello world" #等号两边均不能有空格存在
# 打印变量a的值:
echo "A is:" $a
挑个自己喜欢的编辑器,输入上述内容,并保存为文件first,然后执行 chmod +x first 使其可执行,最后输入./first 执行该脚本。其输出结果如下:
A is: hello world
有时候变量名可能会和其它文字混淆,比如:
num=2
echo "this is the $numnd"
上述脚本并不会输出"this is the 2nd"而是"this is the";这是由于shell会去搜索变量numnd的值,而实际上这个变量此时并没有值。这时,我们可以用花括号来告诉shell要打印的是num变量:
num=2
echo "this is the ${num}nd"
其输出结果为:this is the 2nd
注意花括号的位置:
num=2
echo "this is the {$num}nd"
其输出结果为:this is the {2}nd
需要注意shell的默认赋值是字符串赋值。比如:
var=1
var=$var+1
echo $var
打印出来的不是2而是1+1。为了达到我们想要的效果有以下几种表达方式:
let "var+=1"
var=$[$var+1]
var=`expr $var +1`#注意加号两边的空格,否则还是按照字符串的方式赋值。
注意:前两种方式在bash下有效,在sh下会出错。
let表示数学运算,expr用于整数值运算,每一项用空格隔开,$[]将中括号内的表达式作为数学运算先计算结果再输出。
Shell脚本中有许多变量是系统自动设定的,我们将在用到这些变量时再作说明。除了只在脚本内有效的普通shell变量外,还有环境变量,即那些由export关键字处理过的变量for((e1; e2; e3)); do
命令表
done
小例子:
打开 a.sh |source a.sh 4
#! /bin/bash| 1
for((i=1; i<=$1; i++)); do| 1 2
for((j=1; j<=i; j++)); do| 1 2 3
echo -n $j| 1 2 3 4
done|
echo " " |
done |
#! /bin/bash |
for((i=1; i<=$1; i++)); do|
for((j=1; j<=i; j++)); do|
echo "j"//去掉n, "j"或j|
done|
echo " " |
done
j
j
j
j
j
j
阅读全文
0 0
- linux
- linux
- Linux
- Linux
- LINUX!
- Linux
- linux
- linux
- linux
- Linux
- linux
- linux
- linux
- linux
- Linux
- linux
- linux
- Linux
- WDM驱动开发 电源管理
- Quick3string.java
- 剑指offer 面试题13 在o(1)时间删除链表结点
- 转载自面具
- 博客终于开始了
- linux
- 服务发现的可行方案以及实践案例
- frament 与Act 通信 handle 和接口
- codeforce 4B(思维水题)
- linux下mysql开启/关闭远程访问
- 单词查找树TrieSTtest.java
- http协议中的post和get有何区别?
- BZOJ 1305: [CQOI2009]dance跳舞 最大流
- 正则表达式