makefile或shell中的一些变量】的更多相关文章

总是记不住,作个笔记 $@ 所有目标文件 $< 第一个依赖文件的名称 $? 所有的依赖文件,以空格分开,这些依赖文件的修改日期比目标的创建日期晚 $^ 所有的依赖文件,以空格分开,不包含重复的依赖文件 $* 不包含扩展名的目标文件名称 $# 命令行参数的个数 $n $1 表示第一个参数,$2 表示第二个参数 ... $0 当前程序的名称…
shell中的特殊变量:变量名含义$0shell或shell脚本的名字$*以一对双引号给出参数列表$@将各个参数分别加双引号返回$#参数的个数$_代表上一个命令的最后一个参数$$代表所在命令的PID$!代表最后执行的后台命令的PID$?代表上一个命令执行后的退出状态…
SHELL中的特殊变量和结构 表格 B-1. 特殊的shell变量 变量 含义 $0 脚本名字 $1 位置参数 #1 $2 - $9 位置参数 #2 - #9 ${10} 位置参数 #10 $# 位置参数的个数 "$*" 所有的位置参数(作为单个字符串) * "$@" 所有的位置参数(每个都作为独立的字符串) ${#*} 传递到脚本中的命令行参数的个数 ${#@} 传递到脚本中的命令行参数的个数 $? 返回值,显示最后命令的退出状态.0表示没有错误,其他任何值表明有…
shell中的特殊变量 $? :上一个命令的执行状态返回值 $#::参数的个数 $*:参数列表,所有的变量作为一个字符串 $@:参数列表,每个变量作为单个字符串 $1-9,${10}:位置参数 $$:脚本的进程号 $_:之前命令的最后一个参数 $0:脚本的名称 $!:运行在后台的最后一个进程ID 那么问题来了,这些特殊的变量怎么传递到shell中定义函数中去呢? 一个脚本说明问题 [root@lamp tmp]# cat test.sh #!/bin/sh func () { echo "$1&…
shell 中的特殊变量 变量名   含义 $#     参数的个数 $$     代表所在命令的PID $0     shell或shell脚本的名字 $*     以一对双引号给出参数列表 $@     将各个参数分别加双引号返回 $!     代表最后执行的后台命令的PID $_     代表上一个命令的最后一个参数 $?     代表上一个命令执行后的退出状态…
shell中特殊位置参数变量:$0.$n.$#.$*.$@ $0:获取当前执行shell脚本文件名,如果执行脚本包含路径,那么就包括脚本路径 $n:获取当前执行shell脚本的第n个参数值.n=1..9,当n为0时表示脚本文件名:如果n大于9,则用大括号括起来,例如${10},接的参数以空格隔开 $#:获取当前执行的shell脚本后面接的参数个数 $*:获取当前shell脚本所有传参的参数,不加引号和$@相同:如果给$*加上双引号,例如:“$*”,则表示将所有的参数视为单个字符串,相当于“$1…
(1)sehll实例 # cat subshell #!/bin/bash if (set -u; : $var); then #冒号与$间有空格 echo "Variable is set." else echo "Not set" fi (2)输出结果: # ./subshell ./subshell: line 3: var: unbound variable Not set (3)原因分析: 其中set -u命令用于设置shell选项,u是nounset表示…
局部(local)环境变量 定义局部环境变量的方式如下: variableName=value 需要注意的是variableName前面没有$符号,并且=两边没有空格. 局部环境变量只能在当前shell中使用,无法在其派生的子shell中使用 全局(global)环境变量 定义全局环境变量的方式如下: variableName=value export variableName 可以看到,定义全局环境变量的方式和局部变量非常像,不同之处在于想要成为全局环境变量,必须使用export命令. 全局环…
 1.local一般用于局部变量声明,多在在函数内部使用.实例如下:      echo_start() { local STR="$1" echo "...... ${STR} ......starting at $(date)" } 2.Shell脚本中定义的变量是global的,其作用域从被定义的地方开始,到shell结束或被显示删除的地方为止. 3.export 将自定义变量设定为系统环境变量(仅限于该次登陆操作,当前shell中有效)    语法:expo…
shell中特殊变量IFS的使用 IFS是内部字段分隔符(internal field separator).默认情况下,bash shell会将空格.制表符.换行符 当做字段分隔符. IFS=$'\n':;" 就是将换行符.冒号.分号.双引号作为字段分隔符 IFS='\n' //将字符\和字符n作为IFS的换行符. IFS=$'\n' //真正的使用换行符做为字段分隔符. IFS='\n':;" //将反斜杠.n.冒号.分号和双引号作为字段分隔符. shell 将字符串分割为数组 1…
变量说明:   $$     #Shell本身的PID(ProcessID) $!     #Shell最后运行的后台Process的PID $?     #最后运行的命令的结束代码(返回值) $-     #使用Set命令设定的Flag一览 $*     #所有参数列表.如'$*'用「'」括起来的情况.以'$1 $2 - $n'的形式输出所有参数 $@     #所有参数列表.如'$@'用「'」括起来的情况.以'$1' '$2' - '$n' 的形式输出所有参数 $#     #添加到Shel…
$表示当前的进程,当使用echo $$是会输出当前shell的pid echo $$ 特殊变量列表 变量 含义 $0 当前脚本的文件名 $n 传递给脚本或函数的参数.n 是一个数字,表示第几个参数.例如,第一个参数是$1,第二个参数是$2. $# 传递给脚本或函数的参数个数. $* 传递给脚本或函数的所有参数. $@ 传递给脚本或函数的所有参数.被双引号(" ")包含时,与 $* 稍有不同,下面将会讲到. $? 上个命令的退出状态,或函数的返回值. $$ 当前Shell进程ID.对于…
一. $n:获取当前执行的shell脚本的第N个参数,n=1..9,当n为0时表示脚本的文件名,如果n大于9,用大括号括起来like${10}. $*:获取当前shell的所有参数,将所有的命令行参数视为单个字符串.$@:这个程序的所有参数"$1" "$2" "$3" "...",这是将参数传递给其他程序的最佳方式,因此TA会保留所有内嵌在每个参数里的任何空白.$#:获取当前shell命令行中参数的总个数. $_:代表上一个命…
需求说明: 在实际写脚本的过程中,需要判断某个变量的值是否为某个数字, 比如,判断某个进程的数量是否为0用来确定进程是否存在,这样的情况. 简单来说,算术比较. 测试过程: 通过以下的脚本来判断mysql的后台进程数是否为0,如果不为0, 显示出当前的进程数量. 脚本如下: #!/bin/bash pid_cnts=$(ps -ef | grep mysqld | grep -v grep | awk '{print $2}' | wc -l) ]; then echo "process mys…
恢复 $0,当前脚本的文件名 $n,传递给脚本或函数的参数,n是一个数字,表示第几个参数 $#,传递给脚本或函数的参数个数 $*,传递给脚本或函数的所有参数 $?,函数的返回值 $$,当前shell的进程值PID #!/bin/csh echo "scriptname=$0" echo "firstparam=$1" echo "secondparam=$2" echo "allparam=$*" echo "PID…
常见的特殊变量: $* 和 $@ 的区别: 1. 在这两个变量没有被双引号""引起来的时候,它们没有区别. 2. 在这两个变量被双引号""引起来的时候,"$*"会将所有的参数作为一个整体,以"$1 $2 $3 ...$n"输出,"$@"会将各个参数分开,以"$1" "$2" "$3" ..."$n" 形式输出…
说明:必须要带上$ ,否则报错 ENCRYPTION_KEY=$( /dev/urandom | od -An -t x | tr -d ' ') echo ${ENCRYPTION_KEY}…
目录 特殊变量 变量扩展 特殊变量     在Shell中的特殊变量主要分别两种位置参数变量.状态变量两种. 位置参数变量     Shell中的位置参数变量主要是指$0.$1.$#等,主要用于从命令行.函数或脚本执行等地方传递参数.详细说明如下所示: $0:获取当前执行的Shell脚本的文件名,如脚本中包含路径,则输出也包括路径 $n:获取当前执行的Shell脚本的第n个参数值,如n>9,则需要使用用大括号,如${10},各参数间用空格进行分隔 $#:获取当前执行的Shell脚本传入参数的总个…
一 脚本的创建和执行 1. 创建文件*.sh,文件后缀为sh 2. 编辑脚本 首行必须为:#!/bin/bash   #指定解释脚本的shell 3. 赋权 chmod u+x a.sh 4. 执行 ./a.sh 二 shell脚本中的变量 1.变量的定义与删除 name="hello" #定义变量=前后不能有空格 unset name #删除变量 a. 当前shell中定义的变量只在当前shell有效 b. 不论是普通变量还是环境变量,归根结底都是变量,都遵循变量的基本操作 2.环境…
  1.shell中的大括号和小括号   1.${var} 2.$(cmd) 3.() 和 {} 4.${var:-string}, ${var:+string},  ${var:=string}, ${var:?string} 5.$((exp)) 6.$(var%pattern), $(var%%pattern),  $(var#pattern), $(var##pattern)   现在分述如下: 1.${var}是shell中的原形变量,我们常见的形式是 $var 如: $ var=te…
p { margin-bottom: 0.25cm; line-height: 120% } (一)首先来看什么是变量,在shell中打印出变量采用的是echo $path或者echo ${path}的方式 比如打印出当前系统路径变量就采用echo $PATH的方式 root@zhf-linux:/home/zhf# echo $PATH p { margin-bottom: 0.25cm; line-height: 120% } /usr/local/sbin:/usr/local/bin:/…
第1章 shell中的特殊变量 1.1 $# $# 表示参数的个数 1.1.1 [示例]脚本内容 [root@znix ~]# cat /server/scripts/show2.sh #!/bin/bash echo $1 $2 $# if [ $? == 0 ];then echo "OK" fi 实例1-1 执行的不同结果 [root@znix ~]# sh  /server/scripts/show2.sh  1 2 3 4 6 1 2 5 [root@znix ~]# sh …
Shell 变量的作用域(Scope),就是 Shell 变量的有效范围(可以使用的范围). 在不同的作用域中,同名的变量不会相互干涉,就好像 A 班有个叫小明的同学,B 班也有个叫小明的同学,虽然他们都叫小明(对应于变量名),但是由于所在的班级(对应于作用域)不同,所以不会造成混乱.但是如果同一个班级中有两个叫小明的同学,就必须用类似于“大小明”.“小小明”这样的命名来区分他们. Shell 变量的作用域可以分为三种: 有的变量可以在当前 Shell 会话中使用,这叫做全局变量(global…
shell中为啥与C语言有区别呢?弄成一样的不是很好么,其实不然,shell提供很多操作,这些操作不单单是执行程序或者命令,在很多时候是执行脚本的,简单的shell就是脚本编程,它的主要目的是处理文件相关操作,这样如果是单纯的C语言就没办法完成了,所以需要加入很多能够操作命令的东西,对此下面进行了简单的说明: 1.在shell中所有关于变量的操作需要用((  ))来区分,例如: a=10; b=20; ((c=a+b)); echo ${c}; 上面的例子中(( c=a+b))这里用了双括号是为…
[转]shell编程下 特殊变量.test / [ ]判断.循环.脚本排错 第1章 shell中的特殊变量 1.1 $# $# 表示参数的个数 1.1.1 [示例]脚本内容 [root@znix ~]# cat /server/scripts/show2.sh #!/bin/bash echo $1 $2 $# if [ $? == 0 ];then echo "OK" fi 实例1-1 执行的不同结果 [root@znix ~]# sh  /server/scripts/show2.…
Shell中可以用来实现变量代换的命令有两种,一种是由反引号括起来的一条命令另一种是由$()括起来一条命令,shell先执行这条命令,然后见输出结果立刻代换到当前命令行中. 例如定义一个变量存放date命令的输出: $DATE=`data` $echo $DATE 命令代换也可以用$()表示:$DATE=$(date)  输出的效果是一样的.我们知道系统是不会存在冗余的的命令,那么这两种方式有什么区别呢?下面我们再看一个例子: i=1 time1=Fri Aug 23 11:35:21 a=$(…
一.Shell脚本 1.Shell脚本的建立 由Linux命令.shell命令.程序结构控制语句和注释等内容组成. 脚本第一行 #!/bin/bash #!字符称为幻数,内核会根据它后面的解释器来确定该用什么程序解释脚本 bash与sh的区别 sh为bash的软连接,多数情况下无区别 [xiaoda@codis-178 ~]$ ll /bin/sh lrwxrwxrwx. 1 root root 4 Mar 4 2016 /bin/sh -> bash [xiaoda@codis-178 ~]$…
shell中各种括号的作用().(()).[].[[]].{} 原文:http://www.jb51.net/article/60326.htm http://blog.csdn.net/good_habits/article/details/27708745. http://blog.csdn.net/taiyang1987912/article/details/39551385 在这里我想说的是几种shell里的小括号,大括号结构和有括号的变量,命令的用法,如下: 1.${var} 2.$(…
#!/bin/bash argv=" if [ -z "$argv" ] then echo "argv is empty" else echo "argv is not empty" 说明,-z选项判断一个变量是否为空,如果为空则执行then部分,如果不为空,则执行else部分. 另外,在shell中建议给变量加上双引号,比如如果test的内容是argv="adsf adf 1234e"有空格,变量不加双引号执行i…
在shell脚本设置了环境变量,如export LIBRARY_PATH=./lib/,执行了此脚本后, 在执行生成的可执行文件,提示错误 error while loading shared libraries: libww.so: cannot open shared object file: No such file or directory 但是如果把export那句话单独在命令行运行,在gcc编译代码后不会出现问题 怎么也想不通,为什么脚本执行了,设置了环境变量,但是运行可执行文件总是…