前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Shell常用代码片断

Shell常用代码片断

作者头像
sean.liu
发布2022-09-07 10:52:35
7110
发布2022-09-07 10:52:35
举报

在线Shell终端网站

https://www.runoob.com/try/runcode.php?filename=helloworld&type=bash

中文输出乱码问题

很多使用中文输出的程序,在shell中,中文可能会出现编码问题。 将字符集设置为中文utf8,这个语句可以放到bash_profile中,启时自动设置。

代码语言:javascript
复制
export LANG="zh_CN.UTF-8"

如果还有乱码,需要注意下终端程序的编码设置

条件判断

数字判断

  • -eq: 测试两个整数是否相等;比如 A -eq B
  • -ne: 测试两个整数是否不等;不等,为真;相等,为假;
  • -gt: 测试一个数是否大于另一个数;大于,为真;否则,为假;
  • -lt: 测试一个数是否小于另一个数;小于,为真;否则,为假;
  • -ge: 大于或等于
  • -le:小于或等于

判断命令返回值

命令成功返回值为0

代码语言:javascript
复制
command
if [ $? -eq 0 ]; then
   # 命令执行成功
fi

多条件判断

代码语言:javascript
复制
if [[ 1 -eq 1 ]] && [[ 1 -ne 2 ]]
then
    echo "ok"
fi

循环

打印序列
代码语言:javascript
复制
for i in $(seq 1 10)
do 
     echo $i
done
读取某个文件获取从某个命令获取
代码语言:javascript
复制
for i in `ls /root`
do 
     echo $i
done
单行
代码语言:javascript
复制
for i in `ls /root`;do echo $i;done
如何解决空格被截断的问题

比如类似上面的文本,for循环时,会将空格也截断。 这需要使用一个控制符IFS来处理,可以指定分割符。 默认截断: - 空格 - 制表符 - 换行符 示例

代码语言:javascript
复制
IFS=$'\n'   #只希望截断回车,注意回车前面必须加$
IFS=$'\n '  #截断回车和空格

数组操作

代码语言:javascript
复制
x="a b c d"
array=($x) #字符串转数组
echo 直接输出数组,${array}  #打印第一个
echo 数组元素,${array[2]}
echo 数组所有内容,${array[*]}    #注意,用这个方式传参时,会被打撒
echo 数组长度,${#array[@]}      # 获取数组长度

printf "\n\n"
# 数组遍历
echo "=====array下标是@,加不加引号没区别====="
for i in ${array[@]}
do
 echo print,$i
done

printf "\n\n"
echo "=====array下标是*,加了引号,作为一行字符串====="
for i in "${array[*]}"
do
 echo print,$i
done

printf "\n\n"
echo "=====array下标是*,不加引号====="
for i in ${array[*]}
do
 echo print,$i
done
注意点
  1. 直接使用数组变量,只会输出数组第一个元素。要输出整个数组,需要用@或者*。
  2. 数组的下标,用@或者*是有区别的,如果是*时,加上双引号就会变成字符串,@则不会。
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020年1月11日1,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 在线Shell终端网站
  • 中文输出乱码问题
  • 条件判断
    • 数字判断
      • 判断命令返回值
        • 多条件判断
          • 打印序列
          • 读取某个文件获取从某个命令获取
          • 单行
          • 如何解决空格被截断的问题
          • 注意点
      • 循环
      • 数组操作
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档