
shell脚本中连接字符串的方法,大家参考使用吧
如果想要在变量后面添加一个字符,可以用一下方法:
代码如下:
$value1=home
$value2=${value1}"="
echo
$value2
把要添加的字符串变量添加{},并且需要把$放到外面。
这样输出的结果是:home=,也就是说连接成功。
又如:
代码如下:
[root@localhost
sh]#
var1=/etc/
[root@localhost
sh]#
var2=yum.repos.d/
[root@localhost
sh]#
var3=${var1}${var2}
[root@localhost
sh]#
echo
$var3
/etc/yum.repos.d/
1、shell一般都是放在/bin或者/user/bin目录下,我们可以使用命令cat /etc/shells命令,查看当前linux系统可用的shell是什么。
2、我们使用echo $SHELL命令来查看当前系统的默认Shell,并且输出Shell的环境变量。
3、shell中用于输出字符串的echo命令,我们将需要输出的字符串用双引号包裹,在双引号没有成对出现之前可以任意换行。
4、第一层命令使用PS1,第二层命令使用PS2,>便是第二层命令,如我们在输入完命令没有结束的情况下,显示的便是第二层命令。
5、我们使用echo $PS1和echo $PS2来查看提示符的当前格式,同样我们也可以修改命令提示符。
6、我们创建一个shell脚本了,使用vi test(自定义的脚本名)进入到脚本编辑页面,test便是该脚本的名字,后缀名为.sh即可。
在Makefile可以调用shell脚本,但是Makefile和shell脚本是不同的。本文试着归纳一下Makefile和shell脚本的不同。1、
shell中所有引用以$打头的变量其后要加{},而在Makefile中的变量是以$打头的后加()。实例如下:
Makefile
PATH="/data/"
SUBPATH=$(PATH)
Shell
PATH="/data/"
SUBPATH=${PATH}
2、Makefile中所有以$打头的单词都会被解释成Makefile中的变量。如果你需要调用shell中的变量(或者正则表达式中锚定句位$),都需要加两个$符号($$)。实例如下:
PATH="/data/"
all:
echo
${PATH}
echo
$$PATH例子中的第一个${PATH}引用的是Makefile中的变量,而不是shell中的PATH环境变量,后者引用的事Shell中的PATH环境变量。
3、通配符区别
shell
中通配符*表示所有的字符
Makefile
中通配符%表示所有的字符
4、在Makefile中只能在target中调用Shell脚本,其他地方是不能输出的。比如如下代码就是没有任何输出:
VAR="Hello"
echo
"$VAR"
all:
.....以上代码任何时候都不会输出,没有在target内,如果上述代码改为如下:
VAR="Hello"
all:
echo
"$VAR"
.....以上代码,在make
all的时候将会执行echo命令。
5、在Makefile中执行shell命令,一行创建一个进程来执行。这也是为什么很多Makefile中有很多行的末尾都是“
\”,以此来保证代码是一行而不是多行,这样Makefile可以在一个进程中执行,例如:
SUBDIR=src
example
all:
@for
subdir
in
$(SUBDIR)
\
do\
echo
"building
"
\
done上述可以看出for循环中每行都是以”
\”结尾的。
6、获取当前目录
PATH=`pwd`
注意是``,不是''
推荐你看或者linux就该这么学,具体关于这一章地址3w(dot)linuxprobe(dot)com.
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)