首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何从Bash脚本本身中获得其所在的目录

问: 如何从Bash脚本本身中获得其所在的目录? 我想使用Bash脚本作为另一个应用程序的启动器。我想把工作目录改为Bash脚本所在的目录,以便我可以对该目录下的文件进行操作,像这样: $ ..../application 答: 咱们容易想到的方法是使用 dirname "$0"。 #!...但是在以相对路径的方式去执行脚本时,获取的目录信息是相对路径,不能满足其他需要获取绝对路径的场景。 如果要获取绝对路径,可以使用如下方法: #!...)]" echo "dirname : [$(dirname $(realpath "$0") )]" 参考: stackoverflow question 59895 相关阅读: 在shell编程中$.../(点-斜杠),以便在bash中运行它 shell脚本对编码和行尾符敏感吗

34920

如何从复盘中获得真正的收获?持续改进是关键!

通过复盘,当类似局面再次出现,你就能快速预测接下来的动态走向,更好应对。 项目复盘会则是 项目团队有意识从过去行为经验中,进行集体学习的过程。...一般在项目或里程碑完结后,由项目经理组织召集项目成员,一起回顾项目整个历程中,团队做对哪些事,做错哪些事,再来一次,如何做更好,沉淀该项目产生的集体智慧。...如何做好项目复盘,如何通过复盘去培养团队的持续改进能力? 1 复盘会的基调设定 复盘会前,想清楚复盘的目的,设定好复盘基调,更重要。 曾组织过复盘“坑爹功能”大搜罗。...这样每个人都会小心避开自己的问题,转而说别人的问题,复盘失去意义。 如何设定开放的基调 自己要先进入反思区。 在那次复盘会之前,我跟这个部门的负责人,就部门中反复出现的各种问题,进行过多次深度沟通。...还可提前收集这版本期间,团队满意度的问卷调查,为复盘会引入更多主观输入。 视频也是好的回顾材料。某次重要版本复盘会前,我熬夜加班,为团队准备段回顾视频。因为团队刚完成一件几乎不可能完成任务。

43842
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    如何从技术演进的角度去剖析服务治理中的注册中心

    Producer Consumer 注册中心 从技术本质的角度去理解注册中心,首先必须要了解Producer和Consumer,因为有了业务问题的述求,才会产生注册中心。...Producer 从技术演进的角度去剖析注册中心为什么会存在,存在的价值时什么?没有注册中心之前,Producer和Consumer之间如何完成高效的通信?...进程(Linux)间的通信方式有: 管道 消息队列 共享内存 信号量 Socket java中如何完成一次Consumer到Producer的调用,肯定我们一下子就联想到Socket和HTTP/HTTPS...Consumer Consumer本质上和 Producer一样,也是一个客户端,但是从通信的上行和下行的角度考虑,刚好相反。...注册中心 抛开注册中心,Producer和Consumer是可以直接通信的,但是为什么要去搞注册中心,从技术服务业务问题的角度去剖析,肯定会有他存在的道理。

    64820

    PowerBI 被吊打,如何从数据中获得切实可行的商业见解

    ,且功能本身是安全稳定的; Zebra BI 已经获得强大生命力,不必担心它突然不运转。...如下: 原文:https://mymbas.microsoft.com/sessions/74724013-e5cb-4606-a210-88089a2c8fd2 设计哲学 Zebra BI 结合了最直观的可视化工具...,将您的 Power BI 报告提升到一个新的水平,并在创纪录的时间内从您的数据中提供切实可行的洞察力。...原生支持智能批注匹配 Zebra BI 还支持将批注与具体的呈现完美整合。如下(动画): 用户不但知道生意的好坏,还可以立马聚焦在出问题的地方并获得解释,以便了解更清晰的故事。...(这个表情好符合这里的场景有没有) 从 Zebra BI 的商业案例中,不难发现站在巨人身上,哪怕你多做一点,都感觉你比巨人高了,当然巨人本身还是巨人。

    3.1K50

    银行业的大数据:银行如何从客户数据中获得更大的价值?

    令人惊讶的是,只有37%的银行实施的第一手经验大数据技术为提高运营和消费者利益。他们无法利用这些数据和实施牟利。在这个激烈竞争的主要原因是分析人才的缺乏,因为数据是无用的技能分析。...同样,许多非银行做出了更轻松的生活,引入个性化的钱包,让客户购买直接从他们的登录和获得难以置信的折扣和优惠。...这种ATM钱包的功能就像一个真正的借记账户,带来每年超过一百万用户。 非金融性公司的不断崛起,照顾消费者的金融业务是一个严重的威胁,而且这种差距需要尽早封闭。 银行如何能从客户数据中获得更大的价值?...只是给互联网金融期权是不够的;必须有客户从你的银行利润最大化的一些例外的创新。现有基础和后发优势的银行能带来更好的结果。 银行需要综合业务与新的数字设备和给客户一个清晰的了解,如何在哪里买。...它的目的是将数据从在线和离线路线流入银行的CRM解决方案,为员工提供相关线索。这提高了超过100%转化率,为消费者提供更加个性化的体验。

    3.1K50

    银行业的大数据:银行如何从客户数据中获得更大的价值?

    令人惊讶的是,只有37%的银行实施的第一手经验大数据技术为提高运营和消费者利益。他们无法利用这些数据和实施牟利。在这个激烈竞争的主要原因是分析人才的缺乏,因为数据是无用的技能分析。...同样,许多非银行做出了更轻松的生活,引入个性化的钱包,让客户购买直接从他们的登录和获得难以置信的折扣和优惠。...这种ATM钱包的功能就像一个真正的借记账户,带来每年超过一百万用户。 非金融性公司的不断崛起,照顾消费者的金融业务是一个严重的威胁,而且这种差距需要尽早封闭。 银行如何能从客户数据中获得更大的价值?...只是给互联网金融期权是不够的;必须有客户从你的银行利润最大化的一些例外的创新。现有基础和后发优势的银行能带来更好的结果。 银行需要综合业务与新的数字设备和给客户一个清晰的了解,如何在哪里买。...它的目的是将数据从在线和离线路线流入银行的CRM解决方案,为员工提供相关线索。这提高了超过100%转化率,为消费者提供更加个性化的体验。

    2.2K10

    silverlight2中的定时器,以及如何动态改变控件的坐标

    参考了园子里nasa写里的定时器的用法,以及旋转木马的部分代码,弄了一个小小的示例,贴在这里方便以后备查 目的:让某一个控件沿着圆形轨迹运动 xaml:采用Canvas布局,通过动态修改控件的Margin...presentation"     xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"     x:Class="SilverlightApplication2....System; using System.Windows.Controls; using System.Windows.Threading; namespace SilverlightApplication2...+ 1;             txtTime.Text = new System.Random().Next(1, 10).ToString(); //Margin.Left = 半径*sin(角度...),Margin.Top = 半径*cos(角度)--注意:角度要换成弧度,同时加上平移量             txtTime.Margin = new System.Windows.Thickness

    66770

    从面试官甄别项目经验的角度,说说如何在简历中写项目经验(java后端方向)

    1 你项目是如何部署在什么环境上?发布流程是什么?如果出现线上问题,如何排查?...3 商业项目如果写得很敷衍,就会被当成学习项目(简历中商业项目该怎么写) 针对之前讲述的甄别方式,这里会给出若干在简历中写商业项目的技巧,一方面,如果很敷衍地写,你的项目经验就会被当成学习项目,...1 讲清楚必要的要素,比如项目周期,人数,项目名,客户是谁,用到什么技术,但就凭这点,无法证明是商业项目。 2 讲清楚部署和上线的方式,比如在云端,或linux上如何部署,用到哪些命令?...2 多写些解决的实际问题,比如mytabis里事务是怎么调通的,总之,别浮于技术,再深入写些技术的实现细节。...3 从异常处理、数据库批处理优化、数据库索引、设计模式甚至虚拟机调优角度,写下项目的实现细节,这块属于基本的jdk和数据库知识点,也应该不难实现。

    2.3K20

    WPF备忘录(3)如何从 Datagrid 中获得单元格的内容与 使用值转换器进行绑定数据的转换IValueConverter

    一、如何从 Datagrid 中获得单元格的内容    DataGrid 属于一种 ItemsControl, 因此,它有 Items 属性并且用ItemContainer 封装它的 items. ...但是,WPF中的DataGrid 不同于Windows Forms中的 DataGridView。 ...在DataGrid的Items集合中,DataGridRow 是一个Item,但是,它里面的单元格却是被封装在 DataGridCellsPresenter 的容器中;因此,我们不能使用 像DataGridView.Rows.Cells...这样的语句去获得单元格的内容。...但是,在WPF中我们可以通过可视树(VisualTree) 去进入到控件“内部“, 那么,我们当然可以通过VisualTree进入DataGrid中的DataGridRow 和 DataGridCellsPresenter

    5.6K70

    深入了解Hinton的Capsule神经网络,第二部分:如何运作

    然后,这个总和被传递给许多可能的非线性激活函数中的一个,主要根据函数接受输入和输出一个标量。这个标量是神经元的输出,它将作为其他神经元的输入。这个过程的总结可以在上面的表格和下图中右边的内容上看到。...从本质上说,人工神经元可以用3个步骤来描述: 1.输入标量的标量权重 2.加权输入标量的和 3.标量到标量非线性 ?...左:Capsule;右:人工神经元 另一方面,Capsule除了上面三个步骤的向量形式,还有新的步骤和输入的仿射变换: 1.输入向量的矩阵乘法 2.输入向量的标量权重 3.加权输入向量的总和 4.向量到向量非线性...在神经元的情况下,这些权重是在反向传播过程中得到的,但Capsule是通过“动态路由选择(dynamic routing)”来确定的,这是一种确定每个Capsule的输出位置的新方法。 ?...现在,更高层次的capsule已经从其他低层次的capsule中获得了许多输入载体。所有这些输入都用红色点和蓝色点表示。当这些点聚集在一起时,这就意味着较低层次的capsule的预测是相互接近的。

    84640

    【动态规划背包问题】站在更高的角度看待一般性的背包问题一维空间优化

    前言 今天是我们讲解「动态规划专题」中的 「背包问题」的第六天。 本篇我们继续完成与 完全背包 相关的练习题,共三篇。本篇是第二篇,第一篇在 这里。...示例 1: 输入:coins = [1, 2, 5], amount = 11 输出:3 解释:11 = 5 + 5 + 1 示例 2: 输入:coins = [2], amount = 3...在「学习完全背包」和「上一讲练习」中,我们从最朴素背包转移方程出发,从数学的角度去推导一维优化是如何来的。 这十分科学,而绝对严谨。 但每次都这样推导是十分耗时的。...总结 本节,我们先是从朴素「完全背包」的角度分析并解决了问题。 而在考虑「一维优化」的时候,由于已经有前两节「数学推导优化思路」的基础,我们这次站在了「更高」的角度去看待一维优化。...从抽象「成本」&「价值」,结合「换元法」的角度去理解一维优化过程。 这可以大大节省我们分析推导的时间。

    51741

    贪心算法:最大子序和

    示例: 输入: [-2,1,-3,4,-1,2,1,-5,4] 输出: 6 解释: 连续子数组 [4,-1,2,1] 的和最大,为 6。...贪心解法 「贪心贪的是哪里呢?」 如果 -2 1 在一起,计算起点的时候,一定是从1开始计算,因为负数只会拉低总和,这就是贪心贪的地方!...从代码角度上来讲:遍历nums,从头开始用count累积,如果count一旦加上nums[i]变为负数,那么就应该从nums[i+1]开始从0累积count了,因为已经变为负数的count,只会拖累总和...「这相当于是暴力解法中的不断调整最大子序和区间的起始位置」。 「那有同学问了,区间终止位置不用调整么? 如何才能得到最大“连续和”呢?」...动态规划 当然本题还可以用动态规划来做,当前「代码随想录」主要讲解贪心系列,后续到动态规划系列的时候会详细讲解本题的dp方法。

    84520

    最大子序和,又贪心又DP

    示例: 输入: [-2,1,-3,4,-1,2,1,-5,4] 输出: 6 解释: 连续子数组 [4,-1,2,1] 的和最大,为 6。...贪心解法 贪心贪的是哪里呢? 如果 -2 1 在一起,计算起点的时候,一定是从1开始计算,因为负数只会拉低总和,这就是贪心贪的地方!...从代码角度上来讲:遍历nums,从头开始用count累积,如果count一旦加上nums[i]变为负数,那么就应该从nums[i+1]开始从0累积count了,因为已经变为负数的count,只会拖累总和...这相当于是暴力解法中的不断调整最大子序和区间的起始位置。 那有同学问了,区间终止位置不用调整么?如何才能得到最大“连续和”呢? 区间的终止位置,其实就是如果count取到最大值了,及时记录下来了。...动态规划 当然本题还可以用动态规划来做,当前「代码随想录」主要讲解贪心系列,后续到动态规划系列的时候会详细讲解本题的dp方法。

    31610

    DeepMind开源AlphaFold,蛋白质预测模型登上《Nature》

    2018年的11月2日,在第13届全球蛋白质结构预测竞赛(CASP)上,AlphaFold获得了预测43种蛋白中的25种蛋白结构的最高分,在98名参赛者中排名第一。...其中ω表示沿虚轴(连接两个残基的 原子)旋转角度。 角度定义了从残基1看到残基2的Cβ原子的方向, 同理。另外,与d和ω不同,θ和φ坐标是不对称的,其取决于残基的顺序。...综上6个参数d,ω, 定义了两个残基的主干原子的相对位置,这6个参数也是神经网络所要预测的。 神经网络的输入是从MSA提取的特征,并且执行动态运算。...随后这些一维特征被水平和垂直平铺,然后堆叠在一起以产生2×42=84个2维特征映射。 此外,DeepMind从MSA中提取配对统计信息,这些信息从输入MSA构造的缩小协方差矩阵的逆导出的耦合来表示。...此外,还详细的介绍了数据的下载地址,以及如何输入数据;运行系统如何操作也给出了详细的指导。 AI科技评论在下方再次给出github地址,感兴趣的读者赶紧去上手试一试吧!

    2K10

    动态规划之背包问题——01背包

    每件物品只能用一次,求解将哪些物品装入背包里物品价值总和最大。 每一件物品其实只有两个状态,取或者不取,所以可以使用回溯法搜索出所有的情况,那么时间复杂度就是O(2^n)。 所以需要动态规划来解题。...确定dp数组以及下标的含义 在一维dp数组中,dp[j]表示:容量为j的背包,所背的物品价值可以最大为dp[j]。 2....背包的体积为sum / 2 背包要放入的商品(集合里的元素)重量为 元素的数值,价值也为元素的数值 背包如何正好装满,说明找到了总和为 sum / 2 的子集。 背包中每一个元素是不可重复放入。...如果dp[i] == i 说明,集合中的子集总和正好可以凑成总和i,理解这一点很重要。...3.dp数组如何初始化 从递归公式可以看出,在初始化的时候dp[0] 一定要初始化为1,因为dp[0]是在公式中一切递推结果的起源,如果dp[0]是0的话,递归结果将都是0。

    74920

    动态规划求解博弈问题

    = 0; } 那么如何使用动态规划来求解这个问题?...那么该如何解呢?接下来我们用动态规划来求解此题。 面对一堆石子piles,先手后手轮流从任意一边拿石子。如果我们遍历所有情况,可以列出在每一种情况下先手后手各自获得的石子总数。...最终获得分数总和最多的玩家获胜。 给定一个表示分数的数组,预测玩家1是否会成为赢家。你可以假设每个玩家的玩法都会使他的分数最大化。...示例 1: 输入: [1, 5, 2] 输出: False 解释: 一开始,玩家1可以从1和2中进行选择。如果他选择2(或者1),那么玩家2可以从1(或者2)和5中进行选择。...示例 2: 输入: [1, 5, 233, 7] 输出: True 解释: 玩家1一开始选择1。然后玩家2必须从5和7中进行选择。无论玩家2选择了哪个,玩家1都可以选择233。

    58410

    什么是Apache Zeppelin?

    数据透视图 Apache Zeppelin聚合值,并通过简单的拖放将其显示在透视图中。您可以轻松创建具有多个汇总值的图表,包括总和,数量,平均值,最小值,最大值。...详细了解Apache Zeppelin中的系统显示。 动态表单 Apache Zeppelin可以在笔记本中动态创建一些输入表单。 详细了解动态表单。...100%Opensource Apache Zeppelin是Apache2许可软件,请查看源库和如何贡献。 Apache Zeppelin有一个非常活跃的开发社区。...你如何在Apache Zeppelin中设置解释器?...系统显示 基本系统显示:文本,HTML,表格可用 Angular API:关于avilable后端和前端AngularJS API的说明 角度(后端API) 角度(前端API) 更多 笔记本存储:关于将笔记本电脑保存到外部存储器的指南

    5K60

    【动态规划背包问题】如何将原问题抽象为「01 背包」问题 ...

    前言 今天是我们讲解「动态规划专题」中的 「背包问题」的第二天。 在众多背包问题中「01 背包问题」是最为核心的,因此我建议你先精读过 背包问题 第一讲 之后再阅读本文。...注意: 每个数组中的元素不会超过 100 数组的大小不会超过 200 示例 1: 输入: [1, 5, 11, 5] 输出: true 解释: 数组可以分割成 [1, 5, 5] 和 [11]....示例 2: 输入: [1, 2, 3, 5] 输出: false 解释: 数组不能分割成两个元素和相等的子集....问题等效于「能否从数组中挑选若干个元素,使得元素总和等于所有元素总和的一半」。...不过却是以「另外一个角度」的「01 背包」思维来解决。

    1.2K30
    领券