3.2 bash 命令

作者: bingli | 来源:发表于2017-10-26 13:43 被阅读42次

以下内容主要摘抄自上课课件,非本人原创

$(<filename) 可以用file里面的内容替代整个的$(...) 内容
$(command) 用命令执行的结果来替代整个$(...)内容

将目前的目录记录到路径堆栈中

让系统记住当前目录,就可以在别的目录的时候很方便的切换回来

pushd .
#查看当前路径堆栈中都存有哪些路径
dirs -v

我真的很奇怪自己以前怎么那么笨,就不知道加个点么,这不就直接把当前的路径压到堆栈中了么。

回到前一个目录

cd -

针对文件名的操作,这个太重要了

$name 和${name}输出的结果是一样的

但是${name}在以下几个情况中特别好使

${name}_suffix 可以在_suffix的前面加上前缀
但是此时如果用$name_suffix 就不好使了,因为系统会认为你要返回name_suffix的值

${name%pattern} 会在name的后部去掉pattern,其实也就是去后缀
F=file.fa; echo ${F%.fa} 结果是 file
F=f.file.fa; echo ${F%%.*} 结果是 f

${name#pattern} 在name的钱不去掉pattern,其实也就是去前缀
F=/home/bins/test.fa; echo ${F#*/} 返回结果为home/bins/test.fa
F=/home/bins/test.fa; echo ${F##*/} 返回结果为 test.fa

获取路径或文件名

F=/bin/bins/fa.fa
basename $F 结果是fa.fa
dirname $F 结果是 /bin/bins

注意linux与mac以及win使用的换行符不一样
linux : linefeed
mac : carriage-return
win: carriage-return + linefeed

可用命令

dos2unix filename
mac2unix filename

移除软连接

unlink filename

sh脚本多行注释


:>>eof
commands
commands
commands
commands
eof

就可以将所有的commands注释掉

通配符的详解
sed 的解释

相关文章

网友评论

    本文标题:3.2 bash 命令

    本文链接:https://www.haomeiwen.com/subject/vhozuxtx.html