shell中(),[]和[[]]的区别】的更多相关文章

今天学习一个bash脚本,看到有一条:bin=`dirname "$0"` (dirname filename是输出该文件所在的目录,$0是该bash文件的文件名,在bash中一般使用cd `dirname $0`进入该脚本所在的目录中) 我尝试着cat $bin 输出是:. 然后我将反引号``去掉:bin=dirname "$0" 在运行cat $bin后报错. 网上查了一些bash的单引号'',双引号""和反引号``的区别. 单引号''和双引…
1. 首先,尽管很相似,但是从概念上讲,二者是不同层次的东西."[[",是关键字,许多shell(如ash bsh)并不支持这种方式.ksh, bash(据说从2.02起引入对[[的支持)等支持."["是一条命令, 与test等价,大多数shell都支持.在现代的大多数sh实现中,"["与"test"是内部(builtin)命令,换句话说执行"test"/"["时不会调用/some/pa…
在bash里,这两个都是引号,用来表明字符串,区别是,双引号中的变量会被展开,而单引号中不再展开.举个例子:a="abc"echo "str=$a" # 结果显示 str=abcecho 'str=$a' # 结果显示str=$a…
$*所有的位置参数,被作为一个单词 注意:"$*"必须被""引用 $@ 与$*同义,但是每个参数都是一个独立的""引用字串,这就意味着参数被完整的传递,被没有被解释和扩展,这也意味着每个参数列表中的每个参数都被当成一个独立的单词. 注意:"$@"必须被引用. $@,$*只在被双引号包起来的时候才会有差异. 双引号括起来的情况: $*将所有的参数认为是一个字段. $@以IFS(默认为空格)来划分字段,如果空格在 “”里面则不不划…
shell中$*与$@的区别 关于$* 和 $@的 一点 认识 同是菜鸟一起学习 $* 所有的位置参数,被作为一个单词. 注意:"$*"必须被""引用. $@ 与$*同义,但是每个参数都是一个独立的""引用字串,这就意味着参数被完整地传递, 并没有被解释和扩展.这也意味着,每个参数列表中的每个参数都被当成一个独立的 单词. 注意:"$@"必须被引用. $@ $* 只在被双引号包起来的时候才会有差异 双引号括起来的情况: $*将…
shell中为啥与C语言有区别呢?弄成一样的不是很好么,其实不然,shell提供很多操作,这些操作不单单是执行程序或者命令,在很多时候是执行脚本的,简单的shell就是脚本编程,它的主要目的是处理文件相关操作,这样如果是单纯的C语言就没办法完成了,所以需要加入很多能够操作命令的东西,对此下面进行了简单的说明: 1.在shell中所有关于变量的操作需要用((  ))来区分,例如: a=10; b=20; ((c=a+b)); echo ${c}; 上面的例子中(( c=a+b))这里用了双括号是为…
Shell中可以用来实现变量代换的命令有两种,一种是由反引号括起来的一条命令另一种是由$()括起来一条命令,shell先执行这条命令,然后见输出结果立刻代换到当前命令行中. 例如定义一个变量存放date命令的输出: $DATE=`data` $echo $DATE 命令代换也可以用$()表示:$DATE=$(date)  输出的效果是一样的.我们知道系统是不会存在冗余的的命令,那么这两种方式有什么区别呢?下面我们再看一个例子: i=1 time1=Fri Aug 23 11:35:21 a=$(…
Shell中find中的atime.ctime.mtime的区别 find用法: -atime n File was last accessed n*24 hours ago. 访问(读取文件或执行文件) -ctime n File's status was last changed n*24 hours ago. 写入修改 更改属主 -mtime n File's data was last modified n*24 hours ago. 文件状态被修改 -amin n File was l…
shell中sh, exec, source, fork, ./的区别 1,sh sh test.sh ​ sh是通过创建子进程(subshell)去执行脚本,父进程无法使用子进程中的变量,而子进程对环境变量的修改也不会影响到父进程.父进程中的局部变量子进程也无法使用,子进程会继承父进程的环境变量; ​ 脚本不需要执行权限 2,exec exec + command ./test.sh exec ​ 使用exec执行脚本,被执行的脚本会继承当前shell的环境变量,exec相当于创建了新进程,它…
tips: ============================= IFS - LINUX字段分隔符,内部字段分隔符 IFS(Internal Field Seperator)在Linux的shell中预设的分隔符,用来把command line分解成word(字段). IFS可以是White Space(空白键).Tab( 表格键).Enter( 回车键)中的一个或几个. IFS是shell脚本中的一个重要概念,在处理文本数据时,它是相当有用的.内部字段分隔符是用于特定用途的定界符.IFS…