shell中$*与$@的区别】的更多相关文章

原文地址  stackexchange:What is the exact difference between a 'terminal', a 'shell', a 'tty' and a 'console'? (原文wiki链接在翻译中替换为百度百科链接.) A terminal is at the end of an electric wire, a shell is the home of a turtle, tty is a strange abbreviation and a con…
转自:http://www.2cto.com/os/201403/282583.html http://blog.sina.com.cn/s/blog_bcdac52b0101i2r1.html 控制台,终端,tty,shell等概念的区别 使用linux已经有一段时间,却一直弄不明白这几个概念之间的区别.虽然一直在用,但是很多概念都感觉模糊不清,这样不上不下的状态实在令人不爽.下面就澄清一下这些概念. 这些概念本身有着非常浓厚的历史气息,随着时代的发展,他们的含义也在发生改变,它们有些已经失去…
shell中$*与$@的区别 关于$* 和 $@的 一点 认识 同是菜鸟一起学习 $* 所有的位置参数,被作为一个单词. 注意:"$*"必须被""引用. $@ 与$*同义,但是每个参数都是一个独立的""引用字串,这就意味着参数被完整地传递, 并没有被解释和扩展.这也意味着,每个参数列表中的每个参数都被当成一个独立的 单词. 注意:"$@"必须被引用. $@ $* 只在被双引号包起来的时候才会有差异 双引号括起来的情况: $*将…
Linux执行shell脚本方式及区别&命令后台运行 http://blog.csdn.net/heqiyu34/article/details/19089951/…
shell 脚本各种执行方式(source ./*.sh, . ./*.sh, ./*.sh)的区别 原文出处:http://blog.csdn.net/dance_rise/article/details/8573560 结论一: ./*.sh的执行方式等价于sh ./*.sh或者bash ./*.sh,此三种执行脚本的方式都是重新启动一个子shell,在子shell中执行此脚本(通过fork实现). 结论二: .source ./*.sh和 . ./*.sh的执行方式是等价的,即两种执行方式…
转自:http://www.cnblogs.com/include/archive/2011/12/09/2307905.html 引用: http://www.51testing.com/?uid-7701-action-viewspace-itemid-13731 http://blog.csdn.net/sunboy_2050/article/details/6836382 shell 括号 学习shell的时候总是被shell里的条件判断方式搞得头疼,经常不知道改 用[],[[]],((…
最佳答案 终端,即所谓的命令行界面,又称命令终端,用户输入shell命令用的窗口,跟Windows里的DOS界面差不多. shell,Shell就是用户和操作系统之间的壳,中介,GUI和CLI都算是Shell,登陆终端可以是登陆了Bash也可能是Csh或者Dash:是操作系统与用户交互用的接口,在命令终端里可以使用shell.shell将用户输入翻译为操作系统能处理的指令.shell提供了一些内置命令,也支持调用外面工具. dash,是ubuntu里默认的shell.shell有好多种,除支持默…
一 相关知识 1)默认地,标准的输入为键盘,但是也可以来自文件或管道(pipe |). 2)默认地,标准的输出为终端(terminal),但是也可以重定向到文件,管道或后引号(backquotes `). 3) 默认地,标准的错误输出到终端,但是也可以重定向到文件. 4)标准的输入,输出和错误输出分别表示为STDIN,STDOUT,STDERR,也可以用0,1,2来表示. 5)其实除了以上常用的3中文件描述符,还有3~9也可以作为文件描述符.3~9你可以认为是执行某个地方的文件描述符,常被用来作…
今天学习一个bash脚本,看到有一条:bin=`dirname "$0"` (dirname filename是输出该文件所在的目录,$0是该bash文件的文件名,在bash中一般使用cd `dirname $0`进入该脚本所在的目录中) 我尝试着cat $bin 输出是:. 然后我将反引号``去掉:bin=dirname "$0" 在运行cat $bin后报错. 网上查了一些bash的单引号'',双引号""和反引号``的区别. 单引号''和双引…
虽然这个话题已是老生常谈,搜索一下应该也能找到大把的相关文章.不过难得提到了这方面,就趁此机会把我的理解写下来,一来看看我是不是真正理解了,二来看看我能不能把它们之间的区别讲得更加简明易懂. 0. 太长不看 TL;DR 命令行界面 (CLI) = 使用文本命令进行交互的用户界面 终端 (Terminal) = TTY = 文本输入/输出环境 控制台 (Console) = 一种特殊的终端 Shell = 命令行解释器,执行用户输入的命令并返回结果 1. 什么是命令行界面? 命令行界面,通俗来讲,…
在我们初学linux系统shell时,可能会感觉$@与$*没什么区别,如下面shell脚本: #!/bin/bash# name:a.sh # echo 'this script $* is: '$* echo 'this script $@ is: '$@ 执行结果表面上是一样的.如下图所示: 其实$*和$@还有一些区别的 $*(强调整体)       //所有参数列表,代表"$1 $2 … $n",即当成一个整体输出,每一个变量参数之间以空格隔开.  $@(强调独立)      /…
1. linux命令返回值介绍 shell 在执行某个命令时,会有一个返回值,该值保存在shell变量$?中.当$?为0时,表示命令执行成功:当$?为1时,表示命令执行失败. 2. && 语法格式如下: command1 && command2 &&... command之间用&&连接,实现逻辑与功能 当&&左边的命令执行成功(command的返回值$?=0)时,&&右边的command才会被执行. 只要有一个…
1. 首先,尽管很相似,但是从概念上讲,二者是不同层次的东西."[[",是关键字,许多shell(如ash bsh)并不支持这种方式.ksh, bash(据说从2.02起引入对[[的支持)等支持."["是一条命令, 与test等价,大多数shell都支持.在现代的大多数sh实现中,"["与"test"是内部(builtin)命令,换句话说执行"test"/"["时不会调用/some/pa…
如果你曾经使用过Python,你一定好奇,为什么我们运行python manage.py shell而不是python.这两个命令都会启动交互解释器,但是manage.py shell命令有一个重要的不同: 在启动解释器之前,它告诉Django使用哪个设置文件. Django框架的大部分子系统,包括模板系统,都依赖于配置文件:如果Django不知道使用哪个配置文件,这些系统将不能工作. 如果你想知道,这里将向你解释它背后是如何工作的. Django搜索DJANGO_SETTINGS_MODULE…
前言 初次学习Shell,对于括号的使用肯定很困惑,所以我打算将其整理成一篇文章 单括号 { } 表达变量的值,在不引起歧义的时候可以省略大括号 例子: var=1 echo ${var} # 或者echo $var (command1; command2; command3;) 新开多条命令来执行,各个命令之间用分号隔开,最后一个命令必须要分号来隔开: ( ) (command1; command2; command3) 命令组 新开多条命令来执行,各个命令之间用分号隔开,最后一个命令后面可以…
(1) 下面的语句从输入中读取n个字符并存入变量variable_name: read -n number_of_chars variable_name例如:[root@host1 shell]# read -n var [root@host1 shell]# echo $var [root@host1 shell]# read -n var a+[root@host1 shell]# echo $var a+ (2) 用无回显的方式读取密码: [root@host1 shell]# read…
shell 中的 && 和 || 简言之,shell 中 && --左边的命令执行成功才会执行右边的命令. || -- 左边的命令执行失败才会执行右边的命令.…
shell 应该属于宏语言,顾名思义是系统的壳,方便与系统交互的在以下情况下,不使用shell,因为shell对此无能为力:如:跨平台,较复杂数学操作(如浮点运算,精确运算等),图形化界面 GUI,I/O 或socket 接口,多维数组,对效率要求很高等. shell:简单,开发迅速,专注系统(比如:Linux)管理领域. python:通用脚本语言,功能强大,跨平台(比如:Windows和Linux),严谨: Python可以调用图形库,可以直接做网络应用,甚至直接嵌入其它语言,跨平台: sh…
相信熟悉linux的童鞋不会对这四个符合陌生,shell脚本的文件流有时候真的挺容易搞晕人的,下面我们一起了解一下吧 参考链接:http://www.cnblogs.com/chengmo/archive/2010/10/20/1855805.html 文件描述符 linux启动后,会默认打开3个文件描述符,分别是:标准输入standard input 0,正确输出standard output 1,错误输出:error output 2 以后打开文件后.新增文件绑定描述符 可以依次增加. 一条…
shell+sed+awk严格的讲, shell不是一种编程语言, 但是shell有自己的控制流结构(判断,循环,选择),运算以及函数等编程语言特性, 加上shell命令组织在一起构成脚本, 能够完成一般编程语言做到的事情.sed和awk一般融入到shell里面应用, bash是shell的一种, 也是linux的默认shell. shell是linux内核和用户命令的沟通桥梁, 你输入的任何命令都是通过shell去解释, linux内核才知道你要做什么. 三者中功能最弱,没有调试程序,大多数操…
在使用if语句时,经常会使用().(()).[].[[]].{}等括号,如下为几种括号简单区别对比: ( ) 用于多个命令组.命令替换.初始化数组: (( )) 整数扩展.运算符.重定义变量值,算术运算比较: [] bash内部命令,[与test是等同的,正则字符范围.引用数组元素编号,不支持+-*/数学运算符,逻辑测试使用-a.-o. [[ ]] bash程序语言的关键字,不是一个命令,[[ ]]结构比[ ]结构更加通用,不支持+-*/数学运算符,逻辑测试使用&&.||. {} 主要用于…
Shell 中文意思贝壳,寓意类似内核的壳.Shell是指一种应用程序,这个应用程序提供了一个界面,用户通过这个界面访问操作系统内核的服务.Shell 是一个用 C 语言编写的程序,它是用户使用 Linux 的桥梁.Shell 既是一种命令语言,又是一种程序设计语言.    Shell 脚本(shell script)是一种为 shell 编写的脚本程序.常说的shell通常都是指 shell 脚本,但shell和shell script是两个不同的概念.通常说"shell编程"都是指…
>  :如果文件不存在,同上,如果文件存在,先将文件清空,然后将数据填入此文件 >> :如果文件不存在,将创建新的文件,并将数据送至此文件:如果文件存在,则将数据添加在文件后面…
在bash里,这两个都是引号,用来表明字符串,区别是,双引号中的变量会被展开,而单引号中不再展开.举个例子:a="abc"echo "str=$a" # 结果显示 str=abcecho 'str=$a' # 结果显示str=$a…
cat test1 | uniq > newtest1 & cat test2 | uniq > newtest2 & wait diff newtest1 newtest2 为了比较newtest1和newtest2的不同,必须先让以上的两个cat命令成功并执行完成并生成newtest1和newtest2,否则diff的执行将错误...而wait就是保证以上命令执行完成之后才执行diff命令....在以上命令执行完成之前是不会执行diff命令的…
    awk是行处理器: 相比较屏幕处理的优点,在处理庞大文件时不会出现内存溢出或是处理缓慢的问题,通常用来格式化文本信息 awk处理过程: 依次对每一行进行处理,然后输出 awk命令形式: awk [-F|-f|-v] ‘BEGIN{} //{command1; command2} END{}’ file  [-F|-f|-v]   大参数,-F指定分隔符,-f调用脚本,-v定义变量 var=value '  '          引用代码块 BEGIN   初始化代码块,在对每一行进行处理…
$*所有的位置参数,被作为一个单词 注意:"$*"必须被""引用 $@ 与$*同义,但是每个参数都是一个独立的""引用字串,这就意味着参数被完整的传递,被没有被解释和扩展,这也意味着每个参数列表中的每个参数都被当成一个独立的单词. 注意:"$@"必须被引用. $@,$*只在被双引号包起来的时候才会有差异. 双引号括起来的情况: $*将所有的参数认为是一个字段. $@以IFS(默认为空格)来划分字段,如果空格在 “”里面则不不划…
1. 截断功能${file#*/}:       拿掉第一条/及其左边的字符串:dir1/dir2/dir3/my.file.txt${file##*/}:    拿掉最后一条/及其左边的字符串:my.file.txt${file#*.}:       拿掉第一个.及其左边的字符串:file.txt${file##*.}:    拿掉最后一个.及其左边的字符串:txt${file%/*}:     拿掉最后条/及其右边的字符串:/dir1/dir2/dir3${file%%/*}: 拿掉第一条/…
简要总结: 单引号: 可以说是所见即所得:即将单引号内的内容原样输出,或者描述为单引号里面看见的是什么就会输出什么. 双引号: 把双引号内的内容输出出来:如果内容中有命令,变量等,会先把变量,命令解析出结果,然后在输出最终内容来. 双引号内命令或变量的写法为`命令或变量`或$(命令){变量}. 无引号: 把内容输出出来,可能不会讲含有空格的字符串视为一个整体输出,如果内容中有命令,变量等,会先把变量,命令解析结果,然后在输出最终内容来,如果字符串中带有空格等特殊字符,则不能完整的输出,需要改加双…
#/secondin/secondfirstshecho “please enter two numseconder”read firstread secondif test $first -eq $secondthen echo “NO.1 = NO.2″elif test $first -gt $second //判定其是否大于then echo “NO.1 > NO.2″ else echo “NO.1 < NO.2″fi例2.查找/root/目录下是否存在该文件#/secondin/s…