shell攻略

  • tmux 中的复制很简单就是鼠标选中变黄就行, 然后ctrl a ] 就可以复制;(这个只适用于tmux到tmux的复制,可以包含不同的窗口);

  • tmux到tmux的复制也可以shift 选中 ctrl insert ; shift insert 进行粘贴;

  • tmux -> vim中的复制也可以用上面的ctrl insert,shift insert 进行粘贴;(无论是否进入paste模式都可以粘贴)

  • vim-> vim 的复制同上(但是遇到长的就失效了,应该怎么选中)

  • 弄的时候可以用cat, 用tmux中的复制, [,]的, 但是也可以左键选中(支持鼠标)一出现黄色就代表着进入了复制模式,只需要ctrl a 然后] , 就可以粘贴了, 也可以粘贴到vim中去, 这种方法是支持滑轮的

shell中脚本执行后create,test,之后如果再执行的话, 必须要重新创建, 否则会爆出一大堆错误;

-eq //equals等于
-ne //no equals不等于
-gt //greater than 大于
-lt //less than小于
-ge //greater equals大于等于
-le //less equals小于等于
  • exit命令用来退出当前shell进程,并返回一个退出状态;使用$?可以接收这个退出状态。
    exit命令可以接受一个整数值作为参数,代表退出状态。如果不指定,默认状态值是 0。
    exit退出状态只能是一个介于 0~255 之间的整数,其中只有 0 表示成功,其它值都表示失败。
test -e filename  # 判断文件是否存在
  • -e 文件是否存在
  • -f 是否为文件
  • -d 是否为目录
test -r filename  # 判断文件是否可读

在这里插入图片描述

如果等号的前面那一个空格缺失:
在这里插入图片描述
在这里插入图片描述
就是上面的错误;

后面的一个空格缺失是下面的错误;
在这里插入图片描述

在这里插入图片描述

  • 细节shell中=的两边不能留有空格;否则会判如上错误;

以全排列为例子进行语法对比:
m是第几个排列:

#include <iostream>
using namespace std;
const int N = 110;
int n,m;
int path[N];
bool st[N];
bool dfs(int u)
{
    if(u==n)//获得了一个全排列
    {
        m--;
        if(!m)
        {
            for(int i=0;i<n;i++)printf("%d ",path[i]);
            return true;
        }
        return false;
    }
    for (int i = 1; i <= n; i ++ )
    {
        if(!st[i])
        {
            st[i]=true;
            path[u]=i;
            if(dfs(u+1))return true;
            st[i]=false;
        }
    }
    return false;
}
int main()
{
    cin>>n>>m;
    dfs(0);
    return 0; 
}
#! /bin/bash

read n
read m

for ((i = 1; i <= n; i ++ ))
do
    st[$i]=0
done

dfs() {
    if [ $1 -eq $n ]
    then
        m=`expr $m - 1`
        if [ $m -eq 0 ] 
        then
            echo ${path[@]}
            return 0
        fi
        return 1
    fi  

    local j=0
    for ((j = 1; j <= n; j ++ ))
    do  
        if [ ${st[$j]} -eq 0 ] 
        then
            path[$1]=$j
            st[$j]=1

            if dfs `expr $1 + 1`
            then
                return 0
            fi

            st[$j]=0
        fi
    done

    return 1
}


dfs 0

这个就是文件重定向;就是把10的输出写进了input.txt中
在这里插入图片描述
同时文件多了一个, input.txt文件,
然后执行

./ main.sh input.txt output.txt

此后就output.txt就会出现;后缀就是一个类型, 测试的关键只保留main.sh就可以

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

海波东

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值