shell中特殊语法
  uvM09mQNI0hF 2023年11月19日 18 0
#脚本只要发生错误,就终止执行
set -e
#解决管道的情况,只要一个子命令失败,整个管道命令就失败,脚本会终止执行
set -eo pipefail
#每行行首增加特殊字符
sed -i "s#^#\\\'&#g" test.txt
#每行行尾增加特殊字符
sed -i "s#$#\\\'#g" test.txt
#文本中多行合并到一行并以,间隔
paste -s test.txt -d","

shell中#*、##*、#*、%*、%%*等的含义
假设定义一个变量为:file=/dir1/dir2/dir3/my.file.txt
${file#*/}:删除第一个/及其左边的字符串---> dir1/dir2/dir3/my.file.txt (单个字符->截取掉第一个往左的内容)
${file##*/}: 删除最后一个/及其左边的字符串---> my.file.txt (双字符->截取最后一个匹配字符往左的全部内容)
${file#*.}: 删除第一个.及其左边的字符串---> file.txt
${file##*.}: 删除最后一个.及其左边的字符串--> txt
${file%/*}: 删除最后一个/及其右边的字符串---> /dir1/dir2/dir3 (单个字符->截取第一个往右的内容)
${file%%/*}: 删除第一个/及其右边的字符串--> (空置) (双字符-->截取最后一个匹配字符往右的全部内容)
${file%.*}: 删除最后一个.及其右边的字符串--> /dir1/dir2/dir3/my.file
${file%%.*}: 删除第一个.及其右边的字符串--> /dir1/dir2/dir3/my

shell指令,诸如-d -f -e之类的判断表达式
-e filename 如filename存在,则为真[ -e /var/log/syslog ]
-d filename 如果filename为目录,则为真[ -d /tmp/mydir ]
-f filename 如果filename为常规文件,则为真 [ -f /usr/bin/grep ]
-L filename 如果filename为符号链接,则为真 [ -L /usr/bin/grep ]
-r filename 如果filename可读,则为真 [ -r /var/log/syslog ]
-w filename 如果filename可写,则为真 [ -w /var/mytmp.txt ]
-x filename 如果filename可执行,则为真[ -x /usr/bin/grep ]
-z string  如果string长度为零,则为真 [ -z "$myvar" ]
-n string 如果string长度为零,则为真 [ -n "$myvar" ]
【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月19日 0

暂无评论

推荐阅读
  jnZtF7Co41Wg   2023年12月06日   11   0   0 sedlinux数据
  eHipUjOuzYYH   2023年12月06日   15   0   0 sedbootstrapIPV6
  xIUntf9oR6GI   2023年11月28日   13   0   0 sedvim基础命令
uvM09mQNI0hF