1 This .txt is show how to use the printf
2
3 printf同样可以用于终端打印,printf使用的参数跟C语言的printf函数是一样的,例:
4 xue@xue-desktop:~$ printf "Hello World\n"
5 Hello World
6 xue@xue-desktop:~$
7
8 printf使用引用文本或者由空格分隔的参数,我们可以在printf中使用格式化字符串,我们还可以指定字符串的宽度,左右对齐方式.例:
9 在printf.sh中输入:
10 #!/bin/bash
11 #file name: printf.sh
12 #2012-11-12 21:20
13
14 printf "%-5s %-10s %-4s\n" No Name Mark
15 printf "%-5s %-10s %-4.2f\n" 1 Sarath 80.3456
16 printf "%-5s %-10s %-4.2f\n" 2 James 90.99889
17 printf "%-5s %-10s %-4.2f\n" 3 Jeff 77.564
18
19 执行该脚本:
20 root@xue-desktop:/home/xue# chmod a+x printf.sh
21 root@xue-desktop:/home/xue# ./printf.sh
22 No Name Mark
23 1 Sarath 80.35
24 2 James 91.00
25 3 Jeff 77.56
26 root@xue-desktop:/home/xue#
27 对于%s, %c, %f, %-5s这些,使用过C语言的printf函数的应该很容易理解的了.
28 拿%-5s来说,指明了一个格式为左对齐且宽度为5的字符串(-表示左对齐).如果不使用-指定对齐方式,默认为右对齐形式.
2
3 printf同样可以用于终端打印,printf使用的参数跟C语言的printf函数是一样的,例:
4 xue@xue-desktop:~$ printf "Hello World\n"
5 Hello World
6 xue@xue-desktop:~$
7
8 printf使用引用文本或者由空格分隔的参数,我们可以在printf中使用格式化字符串,我们还可以指定字符串的宽度,左右对齐方式.例:
9 在printf.sh中输入:
10 #!/bin/bash
11 #file name: printf.sh
12 #2012-11-12 21:20
13
14 printf "%-5s %-10s %-4s\n" No Name Mark
15 printf "%-5s %-10s %-4.2f\n" 1 Sarath 80.3456
16 printf "%-5s %-10s %-4.2f\n" 2 James 90.99889
17 printf "%-5s %-10s %-4.2f\n" 3 Jeff 77.564
18
19 执行该脚本:
20 root@xue-desktop:/home/xue# chmod a+x printf.sh
21 root@xue-desktop:/home/xue# ./printf.sh
22 No Name Mark
23 1 Sarath 80.35
24 2 James 91.00
25 3 Jeff 77.56
26 root@xue-desktop:/home/xue#
27 对于%s, %c, %f, %-5s这些,使用过C语言的printf函数的应该很容易理解的了.
28 拿%-5s来说,指明了一个格式为左对齐且宽度为5的字符串(-表示左对齐).如果不使用-指定对齐方式,默认为右对齐形式.
29
1 This is the books of echo
2 2012-11-12 20:05
3
4 echo 笔记
5
6 echo中的', "号的比较:
7
8 (1):当我们希望打印出 Hello World ! 时,应该怎么做呢?
9 xue@xue-desktop:~$ echo Hello World !
10 Hello World !
11 xue@xue-desktop:~$ echo 'Hello World !'
12 Hello World !
13 xue@xue-desktop:~$ echo "Hello world \!"
14 Hello world \!
15 xue@xue-desktop:~$ echo "Hello world ! "
16 Hello world !
17 xue@xue-desktop:~$
18 在15行的时候,!后面是由一个空格的,如果没有空格的话,会发生什么问题呢?来看一下:
19 xue@xue-desktop:~$ echo "Hello World !"
20 bash: !": event not found
21 xue@xue-desktop:~$
22 很显然,报错了。
23
24 那么我们应该怎样使用',"呢?
25 来看一下各种方法的副作用先,这样我们才可以更加清楚该怎么来使用', ".
26 (1) 使用不带引号的echo 时,我们无法在所设定的文本中使用,因为bash shell中被用作命令定界符,例:
27 xue@xue-desktop:~$ echo Hello; Hello
28 Hello
29 No command 'Hello' found, did you mean:
30 Command 'hello' from package 'hello-debhelper' (main)
31 Command 'hello' from package 'hello' (main)
32 Hello: command not found
33 xue@xue-desktop:~$
34 这里我们可以看到,它把echo Hello视作一个命令, 第二个Hello也被视为另一个命令
35 (2)使用带'的echo时,bash不会对'(单引号)中的变量求值,而是照原样显示,例:
36 xue@xue-desktop:~$ hello=mo
37 xue@xue-desktop:~$ echo '$hello'
38 $hello
39 xue@xue-desktop:~$ echo $hello
40 mo
41 xue@xue-desktop:~$
42 从这里可以看出, echo '$var'将会返回$var, 而echo $var则会根据变量定义与否,返回$var的值,或者什么都不返回.
43 (3)至于"(双引号),之前我们已经接触过了,它对于一些特殊字符,如!,则显示会出问题.例:
44 xue@xue-desktop:~$ echo "hello!"
45 bash: !": event not found
46 xue@xue-desktop:~$
47 如果想显示变量的值,使用"在合适不过了,例:
48 xue@xue-desktop:~$ mo=hello
49 xue@xue-desktop:~$ echo "$mo"
50 hello
51 xue@xue-desktop:~$
2 2012-11-12 20:05
3
4 echo 笔记
5
6 echo中的', "号的比较:
7
8 (1):当我们希望打印出 Hello World ! 时,应该怎么做呢?
9 xue@xue-desktop:~$ echo Hello World !
10 Hello World !
11 xue@xue-desktop:~$ echo 'Hello World !'
12 Hello World !
13 xue@xue-desktop:~$ echo "Hello world \!"
14 Hello world \!
15 xue@xue-desktop:~$ echo "Hello world ! "
16 Hello world !
17 xue@xue-desktop:~$
18 在15行的时候,!后面是由一个空格的,如果没有空格的话,会发生什么问题呢?来看一下:
19 xue@xue-desktop:~$ echo "Hello World !"
20 bash: !": event not found
21 xue@xue-desktop:~$
22 很显然,报错了。
23
24 那么我们应该怎样使用',"呢?
25 来看一下各种方法的副作用先,这样我们才可以更加清楚该怎么来使用', ".
26 (1) 使用不带引号的echo 时,我们无法在所设定的文本中使用,因为bash shell中被用作命令定界符,例:
27 xue@xue-desktop:~$ echo Hello; Hello
28 Hello
29 No command 'Hello' found, did you mean:
30 Command 'hello' from package 'hello-debhelper' (main)
31 Command 'hello' from package 'hello' (main)
32 Hello: command not found
33 xue@xue-desktop:~$
34 这里我们可以看到,它把echo Hello视作一个命令, 第二个Hello也被视为另一个命令
35 (2)使用带'的echo时,bash不会对'(单引号)中的变量求值,而是照原样显示,例:
36 xue@xue-desktop:~$ hello=mo
37 xue@xue-desktop:~$ echo '$hello'
38 $hello
39 xue@xue-desktop:~$ echo $hello
40 mo
41 xue@xue-desktop:~$
42 从这里可以看出, echo '$var'将会返回$var, 而echo $var则会根据变量定义与否,返回$var的值,或者什么都不返回.
43 (3)至于"(双引号),之前我们已经接触过了,它对于一些特殊字符,如!,则显示会出问题.例:
44 xue@xue-desktop:~$ echo "hello!"
45 bash: !": event not found
46 xue@xue-desktop:~$
47 如果想显示变量的值,使用"在合适不过了,例:
48 xue@xue-desktop:~$ mo=hello
49 xue@xue-desktop:~$ echo "$mo"
50 hello
51 xue@xue-desktop:~$
52
另外,还要特别注意echo & printf中的-e -n 选项。例:
root@xue-desktop:/home/xue# echo "1\n2"
1\n2
root@xue-desktop:/home/xue# echo -e "1\n2"
1
2
root@xue-desktop:/home/xue#
从上面可以看出,当我们要使用转义字符的时候,一定要记住加上-e选项。