shell 语法总结

  1. 用 sed 替换字符串中指定字符,例如替换 / 为 -
%>echo abc/123 | sed 's/\//-/'
abc-123
  1. 将 echo 的输出结果赋值给一个变量 new
%>set new=`echo abc/123 | sed 's/\//-/'`
%>echo $new
abc-123
  1. #!/bin/bash下,判断多个文件是否同时存在
if [ -f $bom_list ] && [ -f $exclu_list ]; then

#!/bin/csh下,

if ( -r $dir/$file) then

若文件名包含空格,需要用引号,多个文件是否存在,或的关系如下:

if ( -f "$filename1" || -f "$filename2") then	
  1. #!/bin/bash下,判断路径是否存在
if [ ! -d $build_dir ]; then
    echo "Error: Directory Not found ! - "$build_dir 
    exit
fi

#!/bin/csh下,判断路径是否存在

if ( -d $build_dir ) then
    echo "Error: Directory Not found ! - "$build_dir 
    exit
endif
  1. 判断字符串是否为空
if ( ! -z "$source_headers" ) then
  1. 判断文件大小不为零
if ( -s $dir/$file) then 
  1. 循环读取文件中的每一行,csh:
foreach line ( "`cat $file`" )
    set filename = ( $line )
    echo $filename     
end

bash:

while read line; do
	echo $line
done < $file
  1. 循环读取文件中的每一行并计数,每次加1,bash:
i=0
while read line; do
	echo $line
	((i++))
done < $file
echo "Total number of lines: $i"
  1. shell 求和,bash:
num1=90
num2=10
let num=num1+num2
echo $num
  1. 关系运算符
    原博地址 https://www.runoob.com/linux/linux-shell-basic-operators.html
    在这里插入图片描述

  2. 布尔运算符
    在这里插入图片描述

  3. 逻辑运算符
    在这里插入图片描述

  4. 字符串运算符
    在这里插入图片描述

  5. 文件测试运算符
    在这里插入图片描述

  6. #! /bin/csh -f 循环读取文件夹名称

#! /bin/csh -f
foreach foldername ( "`ls /home/project/`" )
	echo $foldername
end 	
  1. #! /bin/csh 下定义一个list并循环读取
#!/bin/bash
projectList=(p1 p2 p3)
echo "projectList = "${projectList[*]} //显示list全部内容
for i in ${projectList[*]}; do
    echo $i
done	
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值