linux-脚本问题汇总
实际编写脚本过程中,会有各种各样小的问题或者细节,没有注意。都汇总到这篇文章。
-
cp 命令复制文件时,如需覆盖文件需要每个文件需要手动确认是否覆盖,
cp -rf
不起作用alias cp # Linux默认为cp设置了别名 alias cp='cp -i' #或者查看.bashrc文件 cat ~/.bashrc #在执行脚本中上重新命令cp别名,当前shell脚本下有效 alias cp='cp'
ubantu默认为
cp命令
配置了别名,如上所示,默认加了-i
参数。所以脚本中 -
相对路径和绝对路径
#!/bin/bash cd ../ echo `pwd` echo $PWD
脚本中的相对路径是针对执行脚本的路径而言的。上述代码打印的路径总是随着用户执行路径变化
#!/bin/bash abspath=`dirname $0` echo $0 echo $abspath #cd `dirname $0` cd $abspath echo `pwd` echo $PWD ##打印信息如下 sh app/test.sh # 如下$0的内容取决于调用命令,如果调用命令是./app/test.sh,则返回./app app/test.sh app /opt/app /opt/app
上面的的脚本总是输出文件所在的路径
$0
返回调用当前脚本的路径dirname
:输出$0
去掉尾部的"/"字符后面的路径;如果名称中不包含"/",则显示"."(表示当前目录)。
脚本中如果使用了相对路径,在脚本最开始的地方最后先执行cd切换至当前路径。这样可以避免在其他路径下调用该脚本,相对路径转换问题。
参考资料