shell

本文介绍了Shell脚本中如何判断路径是否为目录或符号链接,以及相应处理方式。同时讲解了字符串拼接和包含检查的方法,并展示了scp命令用于从远程服务器拷贝文件到本地的用法。最后,解释了2>&1的含义,即重定向标准错误到标准输出。此外,还演示了如何在Shell中分割字符串并遍历数组。
摘要由CSDN通过智能技术生成

shell中判断路径是否存在

if [ -d "$LINK_OR_DIR" ]; then 
  if [ -L "$LINK_OR_DIR" ]; then
    # It is a symlink!
    # Symbolic link specific commands go here.
    rm "$LINK_OR_DIR"
  else
    # It's a directory!
    # Directory command goes here.
    rmdir "$LINK_OR_DIR"
  fi
fi

shell中拼接字符串

#第一种
foo="Hello"
foo="${foo} World"
echo "${foo}"
> Hello World
#第二种
a='Hello'
b='World'
c="${a} ${b}"
echo "${c}"
> Hello World

shell中判断字符串中是否包含某字符串

string='My long string'
if [[ $string == *"My long"* ]]; then
  echo "It's there!"
fi

scp命令拷贝远端数据到本地

#-r表示递归复制整个目录
#foo后不加/,类似于windows中的把foo整个目录拷贝
scp -r user@your.server.example.com:/path/to/foo /home/user/Desktop/
#foo后加/,只把foo中的内容拷贝
scp -r user@your.server.example.com:/path/to/foo/ /home/user/Desktop/

shell中2>&1的意思

1等同于stdout
2等同于stderr
所以2>&1等同于stderr to stdout(把标准错误输出到标准输出)
因为>是重定向符号,其后的可以是文件名,为了防止误会,所以命令中添加了&符号。&符号就是告诉计算机,1和2就是标志stdoutstderr的意思,而不是其他的意思

shell中分割字符串

#!/bin/bash
IN="bla@some.com;john@home.com"
#IFS是关键字,表示分隔符
IFS=';' read -ra ADDR <<< "$IN"  #把IN的内容提取出来赋值给数组ADDR 
for i in "${ADDR[@]}"; do  #循环数组ADDR ;@符号,表示所有的意思
  echo "$i"
done
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值