红联Linux门户
Linux帮助

学习Shell得到的一些疑问和收获

发布时间:2008-07-29 17:46:04来源:红联作者:nanhai-linux
1.程序:
#!/bin/bash
#4.3.sh;
echo $1;
echo $2;
echo $3;
echo $4;

#!/bin/bash
#4.3.sh
echo $1
echo $2
echo $3
echo $4
的运行结果一致,请问程序中出现的分号的作用?
2.我发现:
echo "hello,Beijing"

echo hello,Beijing
运行结果一致
当有了特殊字符就不一样了。
如:
echo "hello, \nBeijing"
的运行结果为:
hello
Beijing

echo hello,\nBeijing
的运行结果为:
hello,\nBeijing
所以请大家要特别注意一些细节上的东西。
3.在终端运行如下命令,可将文件a.txt中的所有小写字母转换成大写字母,然后保存到文件b.txt中
tr "[a-z]" "[A-Z]" b.txt
而在终端运行如下命令,可将文件b.txt中的所有大写字母转换成小写字母,然后保存到文件c.txt中
tr "[A-Z]" "[a-z]" c.txt
文章评论

共有 5 条评论

  1. taotie 于 2008-08-01 09:12:24发表:

    (5ty( (5ty( (5ty(

  2. wangyu 于 2008-07-29 21:23:04发表:

    恩,感觉就像c语言一样,多谢提醒

  3. lyq617617 于 2008-07-29 21:11:33发表:

    有必要学习一下linux shell中单引号、双引号和反引号(位于键盘上Esc下方)的用法,它们各自有其不同的地方,也是最容易出错的地方;
    LZ举的第二个例子加双引号和不加双引号,结果就在是否输出一个反斜杠上,并不会换行。

  4. lyq617617 于 2008-07-29 21:03:25发表:

    回答你前二个问题:
    1。linux shell 是指令解释器,但它同时也是一种编程语言,分号作为语句分隔符,在脚本里当语句分行写的时候,分号可写可不写;但如果你想在命令行同时运行两条指令,那么这时候分号就必须加上,例如:
    # date;who
    2008年 07月 29日 星期二 21:02:12 CST
    root :0 2008-07-29 20:58
    root pts/0 2008-07-29 20:58
    root pts/1 2008-07-29 20:58 (192.168.1.110)

    2。
    # echo "hello, \nBeijing" hello, \nBeijing 显示在同一行
    # echo hello, \nBeijing hello, nBeijing 显示在同一行
    我不知道LZ是否运行过。如果真的想得到下面的结果
    hello,
    Beijing
    可以这样:
    # echo -e "hello,\nBeijing"
    [color=#a0522d][/color]

    [ 本帖最后由 lyq617617 于 2008-7-29 21:07 编辑 ]

  5. sfzfnm 于 2008-07-29 18:52:58发表:

    学习了