UNIX 新手指南: 一些很好的 Shell 诀窍( 八 )


250 / 6 = 41 250 * 6 = 1500 2506 = 256 250 - 6 = 244
250 / 5 = 50 250 * 5 = 1250 2505 = 255 250 - 5 = 245
250 / 4 = 62 250 * 4 = 1000 2504 = 254 250 - 4 = 246
250 / 3 = 83 250 * 3 = 750 2503 = 253 250 - 3 = 247
250 / 2 = 125 250 * 2 = 500 2502 = 252 250 - 2 = 248
250 / 1 = 250 250 * 1 = 250 2501 = 251 250 - 1 = 249
100 / 10 = 10 100 * 10 = 1000 10010 = 110 100 - 10 = 90
100 / 9 = 11 100 * 9 = 900 1009 = 109 100 - 9 = 91
100 / 8 = 12 100 * 8 = 800 1008 = 108 100 - 8 = 92
100 / 7 = 14 100 * 7 = 700 1007 = 107 100 - 7 = 93
100 / 6 = 16 100 * 6 = 600 1006 = 106 100 - 6 = 94
100 / 5 = 20 100 * 5 = 500 1005 = 105 100 - 5 = 95
100 / 4 = 25 100 * 4 = 400 1004 = 104 100 - 4 = 96
100 / 3 = 33 100 * 3 = 300 1003 = 103 100 - 3 = 97
100 / 2 = 50 100 * 2 = 200 1002 = 102 100 - 2 = 98
100 / 1 = 100 100 * 1 = 100 1001 = 101 100 - 1 = 99
2136 / 10 = 213 2136 * 10 = 21360 213610 = 2146 2136 - 10 = 2126
2136 / 9 = 237 2136 * 9 = 19224 21369 = 2145 2136 - 9 = 2127
2136 / 8 = 267 2136 * 8 = 17088 21368 = 2144 2136 - 8 = 2128
2136 / 7 = 305 2136 * 7 = 14952 21367 = 2143 2136 - 7 = 2129
2136 / 6 = 356 2136 * 6 = 12816 21366 = 2142 2136 - 6 = 2130
2136 / 5 = 427 2136 * 5 = 10680 21365 = 2141 2136 - 5 = 2131
2136 / 4 = 534 2136 * 4 = 8544 21364 = 2140 2136 - 4 = 2132
2136 / 3 = 712 2136 * 3 = 6408 21363 = 2139 2136 - 3 = 2133
2136 / 2 = 1068 2136 * 2 = 4272 21362 = 2138 2136 - 2 = 2134
2136 / 1 = 2136 2136 * 1 = 2136 21361 = 2137 2136 - 1 = 2135
875 / 10 = 87 875 * 10 = 8750 87510 = 885 875 - 10 = 865
875 / 9 = 97 875 * 9 = 7875 8759 = 884 875 - 9 = 866
875 / 8 = 109 875 * 8 = 7000 8758 = 883 875 - 8 = 867
875 / 7 = 125 875 * 7 = 6125 8757 = 882 875 - 7 = 868
875 / 6 = 145 875 * 6 = 5250 8756 = 881 875 - 6 = 869
875 / 5 = 175 875 * 5 = 4375 8755 = 880 875 - 5 = 870
875 / 4 = 218 875 * 4 = 3500 8754 = 879 875 - 4 = 871
875 / 3 = 291 875 * 3 = 2625 8753 = 878 875 - 3 = 872
875 / 2 = 437 875 * 2 = 1750 8752 = 877 875 - 2 = 873
875 / 1 = 875 875 * 1 = 875 8751 = 876 875 - 1 = 874
$
读取键盘输入
您还可以在脚本中或从命令行本身读取键盘输入 。使用 read 命令可以实现这一功能,这是一个内置函数,将任意数量的变量名作为参数 。它从标准输入读取变量的值,读入单行输入并将各个输入词分配给各个变量 。
尝试读取一个变量,如清单 30 中所示:
清单 30. 使用 read 读取一个变量
$ read VAR
23
$ echo $VAR
23
$
使用 -p 选项为每次 read 提供提示 。使用以引号括起来的字符串提供提示,如清单 31 中所示 。发生变量扩展 。
清单 31. 在变量读取时使用提示
$ read -p "Instead of $VAR, what number would you like? " VAR
Instead of 23, what number would you like? 17
$ echo $VAR
17
$
如果键盘输入的词比变量个数多,那么依次为变量分配输入的词,到最后一个变量时,为其分配输入行余下的部分 。(如果输入的词比变量个数少,那么为变量分配值直到所有的输入都已分配,然后为所有剩余的变量分配空值 。)
在循环中读取
您可以在循环中使用 read 作为条件表达式 。现在使用清单 32 中的内容尝试这一操作:
清单 32. 在循环中读取一组文件名
$ while read -p "File? " file; do ls $file; done
File? 10
10
File? 12
12
File? 42
42: no such file or Directory
File?
Carriage return
10 11 12
File?
Control-C
$
此技术通常在对循环的输入使用管道时使用 。尝试键入清单 33 中的文本,该文本使用循环替代 ls 命令的输出:

推荐阅读