• 退出状态
    bash中的内建命令虽然不创建新的进程,但也会有Exit Status,通常也用0表示成功非零表示失败,可以用特殊变量$?读出
  • 命令代换:`或$()

    1. user@ae01:~$ echo `date`
    2. Sat Oct :: CST
    3. user@ae01:~$
    4.  
    5. user@ae01:~$ echo $(date)
    6. Sat Oct :: CST
    7. user@ae01:~$
  • 算术代换:$(())

    1. user@ae01:~$ echo $((+))
    1. user@ae01:~$ i=
    2. user@ae01:~$ echo $(($i+))
    3.  
    4. user@ae01:~$ echo $((i+))
  • 单引号
    Shell脚本中的单引号和双引号一样都是字符串的界定符,而不是字符的界定符。单引号用于保持引号内所有字符的字面值,即使引号内的\和回车也不例外,但是字符串中不能出现单引号。如果引号没有配对就输入回车,Shell会给出续行提示符,要求用户把引号配上对。例如:

    1. user@ae01:~$ echo 'hello word
    2. > '
    3. hello word
    4.  
    5. user@ae01:~$
    1. user@ae01:~$ echo 'hello \
    2. > word'
    3. hello \
    4. word
    5. user@ae01:~$
  • 双引号
    双引号用于保持引号内所有字符的字面值(回车也不例外),但以下情况除外:

    • $加变量名可以取变量的值
    • ``仍表示命令替换
    • \$ 表示$的字面值
    • \` 表示`的字面值
    • \" 表示"的字面值
    • \\ 表示\的字面值
    1. user@ae01:~$ echo $HOME
    2. /home/user
    3. user@ae01:~$ echo "`date`"
    4. Sat Oct :: CST
    5. user@ae01:~$ echo "I'd say: \"Go for it\""
    6. I'd say: "Go for it"
    7. user@ae01:~$ echo "\"
    8. > "
    9. "
    10.  
    11. user@ae01:~$ echo "\\"
    12. \
    13. user@ae01:~$
  • bash 参数

    • $0 代表脚本在执行时的自身文件名;像上面执行时用的是相对路径,即显示执行时的$0为"./Parameter";若执行时用绝对路径“/home/kashu/Parameter”,则$0就会显示为“/home/kashu/Parameter”
    • $# 代表所有参数的总数量
    • $@ 代表 "$1","$2", "$3", "$4" 等等,即代表每个独立的变量参数,$1 代表第一个变量参数, $2 代表第二个变量参数
    1. echo "$# parameters";
    2.  
    3. echo -e \\nUsing '$*';
    4. for p in $*;
    5. do
    6. echo "[$p]";
    7. done;
    8.  
    9. echo -e \\nUsing '"$*"';
    10. for p in "$*";
    11. do
    12. echo "[$p]";
    13. done;
    14.  
    15. echo -e \\nUsing '$@';
    16. for p in $@;
    17. do
    18. echo "[$p]";
    19. done;
    20.  
    21. echo -e \\nUsing '"$@"';
    22. for p in "$@";
    23. do
    24. echo "[$p]";
    25. done
    1. user@ae01:~$ ./test.sh "2 3"
    2. parameters
    3.  
    4. Using $*
    5. []
    6. []
    7. []
    8.  
    9. Using "$*"
    10. [ ]
    11.  
    12. Using $@
    13. []
    14. []
    15. []
    16.  
    17. Using "$@"
    18. []
    19. [ ]

Shell 编程基础之注意技巧的更多相关文章

  1. 【转】Shell编程基础篇-上

    [转]Shell编程基础篇-上 1.1 前言 1.1.1 为什么学Shell Shell脚本语言是实现Linux/UNIX系统管理及自动化运维所必备的重要工具, Linux/UNIX系统的底层及基础应 ...

  2. 【转】Shell编程基础篇-下

    [转]Shell编程基础篇-下 1.1 条件表达式 1.1.1 文件判断 常用文件测试操作符 常用文件测试操作符 说明 -d文件,d的全拼为directory 文件存在且为目录则为真,即测试表达式成立 ...

  3. shell编程基础(转载)

    Shell编程基础 原作者 Leal:请参阅页面底部的编者列表. 授权许可: 创作共享署名协议 GNU 自由文档许可证 注意:本文仍然在持续的修订之中,且错漏之处可能较多.如果能够阅读英语的话,可以考 ...

  4. 【Shell 编程基础第二部分】Shell里的流程控制、Shell里的函数及脚本调试方法!

    http://blog.csdn.net/xiaominghimi/article/details/7603003 本站文章均为李华明Himi原创,转载务必在明显处注明:转载自[黑米GameDev街区 ...

  5. Linux学习之二十一-shell编程基础

    Shell编程基础 Shell 是一个用 C 语言编写的程序,它是用户使用 Linux 的桥梁.Shell 既是一种命令语言,又是一种程序设计语言.Shell 是指一种应用程序,这个应用程序提供了一个 ...

  6. 7-1 shell编程基础之二

    shell编程基础之二 算数运算 bash中的算术运算:help let +, -, *, /, %取模(取余), **(乘方),乘法符号有些场景中需要转义 实现算术运算: (1) let var=算 ...

  7. 6-2 shell编程基础

    shell编程基础 编程基础 Linus:Talk is cheap, show me the code 程序和编程风格 程序: 程序:算法+数据结构 数据:是程序的核心 算法:处理数据的方式 数据结 ...

  8. shell编程基础进阶

    为什么学习shell编程 shell脚本语言是实现linux/unix 系统管理机自动化运维所必备的重要工具,linux/unix系统的底层及基础应用软件的核心大部分涉及shell脚本的内容.每一个合 ...

  9. 基于Linux系统的Shell编程-基础篇

    1. Shell基础介绍 1.1 Shell编程的意义 为什么使用shell编程 节约时间 1.2 显示脚本执行过程 前面有+表示执行过的命令的 前面没有东西,表示输出到屏幕上的内容. [root@C ...

随机推荐

  1. IE11 的区别

    http://msdn.microsoft.com/zh-tw/visualc/bg182625

  2. android bitmap的放大缩小

    private static Bitmap big(Bitmap bitmap) { Matrix matrix = new Matrix(); matrix.postScale(1.5f,1.5f) ...

  3. C++异常层次结构图

  4. NYOJ题目1045看美女

    aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAAskAAAK5CAIAAADCdSR7AAAgAElEQVR4nO3dP3Lbuv434HcT7r2Q1F

  5. 电脑没有关机可能出现发博文dns异常(write)

    现在是把装系统的技巧基本掌握,其实弄了这么多次还是有一个突破点,就是安装系统win7选择cd的iso是要ide模式.

  6. Python内置的HTTP协议服务器SimpleHTTPServer

    [root@ok 6FE5-D831]# python -m SimpleHTTPServer 一条命令,HTTP服务就搭起来了!!! 方便朋友下载,自己的文件!!

  7. Ubuntu下调整swap分区的大小

    转自:http://blog.chinaunix.net/uid-7573623-id-2048964.html 由于安装oracle 的时候,swap太小不能继续安装,于是想有什么方法在不不用安装o ...

  8. Pyqt 打包资源文件

    用打包工具将做好的Pyqt程序打包成exe后发现引用的资源图片都显示不了? 是否遇到了和我一样的问题呢.google之后找到了方法,一种方法是在程序中引用外部资源,另外一种方法是将资源文件转换为py文 ...

  9. 登录成功,拿到token

    历尽波折,终于成功登录并拿到了token: - (LoginResultDto *)login:(NSString *)userName andPassword:(NSString *)passwor ...

  10. [JavaCore]JAVA中的泛型

    JAVA中的泛型 [更新总结] 泛型就是定义在类里面的一个类型,这个类型在编写类的时候是不确定的,而在初始化对象时,必须确定该类型:这个类型可以在一个在里定义多个:在一旦使用某种类型,在类方法中,那么 ...