ASP源码.NET源码PHP源码JSP源码JAVA源码DELPHI源码PB源码VC源码VB源码Android源码

『阿男的Bash日常使用笔记』*04*

来源:网络整理     时间:2016-06-18     关键词:

本篇文章主要介绍了" 『阿男的Bash日常使用笔记』*04*",主要涉及到方面的内容,对于其他编程jrs看球网直播吧_低调看直播体育app软件下载_低调看体育直播感兴趣的同学可以参考一下: grep显示行号使用grep的`-n`选项可以显示行号: `/`的inode号是2power:/ weinanli$ ls -ldi /2 drwxr-xr-x...

grep显示行号
使用grep的`-n`选项可以显示行号:

`/`的inode号是2
power:/ weinanli$ ls -ldi /
2 drwxr-xr-x  40 root  wheel  1428 Oct  9 08:28 /

`ls -F`
ls的manpage对`-F`选项的说明如下:
	-F      Display a slash (`/') immediately after each pathname that is a
			 directory, an asterisk (`*') after each that is executable, an at
			 sign (`@') after each symbolic link, an equals sign (`=') after
			 each socket, a percent sign (`%') after each whiteout, and a ver-
			 tical bar (`|') after each that is a FIFO.

其中比较常见的是 `/`(目录),`*`(可执行文件)和`@`(符号链接)。下面是例子:

getcwd
getcwd可以获取进程所在工作目录,类似`pwd`命令的效果:

bash中查看数组中数据的索引号
power:~ weinanli$ foo=(a b c)
power:~ weinanli$ echo ${!foo[@]}
0 1 2

bash中制定数组中数据的标号
power:~ weinanli$  foo=(a [5]=b c)
power:~ weinanli$ echo ${!foo[@]}
0 5 6

bash中查看数组中某一元素的字串长度
power:~ weinanli$ foo=(a b c d e f g)
power:~ weinanli$ echo ${#foo[@]}
7
power:~ weinanli$ foo=(x xy xyz)
# 第一个元素`x`,长度为1
power:~ weinanli$ echo ${#foo[0]}
1
# 第二个元素`xy`,长度为2
power:~ weinanli$ echo ${#foo[1]}
2
# 第三个元素`xyz`,长度为2
power:~ weinanli$ echo ${#foo[2]}
3

bash中查看数组包含的元素个数
power:~ weinanli$ foo=(a b c)
# 查看数组本身的元素个数用`[@]`引用数组本身即可
power:~ weinanli$ echo ${#foo[@]}
3
power:~ weinanli$ foo=(a b c d e f g)
power:~ weinanli$ echo ${#foo[@]}
7

bash中的参数展开
通过使用`!`,我们可以让bash将传入函数的字串转变为变量名:
function not_expand() {
	echo ${1}
}

function expand() {
	echo ${!1}
}

foo=(a b c)
echo "NOT_EXPAND"
not_expand foo
not_expand foo[@]
echo "EXPAND"
expand foo
expand foo[@]

以下是执行结果:

bash中传入数组
power:Desktop weinanli$ ccat in_array.sh
function in_array() {
	foo=${!1}
	bar=${!2}
	echo ${foo[@]}
	echo ${bar[@]}
}

arr1=(a b c)
arr2=(x y z)

in_array arr1[@] arr2[@]
power:Desktop weinanli$ sh in_array.sh
a b c
x y z
power:Desktop weinanli$


更为可靠的方法是这样声明`foo`和`bar`:
	declare -a foo=("${!1}")
	declare -a bar=("${!2}")

其中`declare -a`就是把foo和bar强制声明为数组类型,然后`()`本身就是数组的声明格式。

  • 大小: 19.5 KB
  • 大小: 35.5 KB
  • 大小: 38.3 KB
  • 大小: 43.4 KB
  • 大小: 32.6 KB
  • 查看图片附件

以上就介绍了 『阿男的Bash日常使用笔记』*04*,包括了方面的内容,希望对其他编程jrs看球网直播吧_低调看直播体育app软件下载_低调看体育直播有兴趣的朋友有所帮助。

本文网址链接:http://www.codes51.com/article/detail_1745793.html

相关图片

相关文章