标签: scripting

shell脚本中的全局环境变量

如何在bash脚本中设置全局环境变量?

如果我喜欢的话

#!/bin/bash
FOO=bar
Run Code Online (Sandbox Code Playgroud)

...要么

#!/bin/bash
export FOO=bar
Run Code Online (Sandbox Code Playgroud)

... vars似乎停留在本地环境中,而我希望在脚本执行完毕后继续使用它们.

shell scripting environment-variables

81
推荐指数
3
解决办法
13万
查看次数

使用find和sed递归重命名文件

我想浏览一堆目录并将所有以_test.rb结尾的文件重命名为_spec.rb结尾.这是我从未想过如何处理bash的事情所以这次我认为我会付出一些努力来实现它.到目前为止,我做得很短,我最大的努力是:

find spec -name "*_test.rb" -exec echo mv {} `echo {} | sed s/test/spec/` \;
Run Code Online (Sandbox Code Playgroud)

注意:在exec之后有一个额外的回声,所以在我测试时打印命令而不是运行.

当我运行它时,每个匹配文件名的输出是:

mv original original
Run Code Online (Sandbox Code Playgroud)

即sed的替换已经丢失.有什么诀窍?

bash scripting replace sed find

80
推荐指数
7
解决办法
8万
查看次数

如何为长路径制作"别名"?

我试图为shell脚本经常使用的路径制作一个"别名".我试了一下,但失败了:

myFold="~/Files/Scripts/Main"
cd myFold

bash: cd: myFold: No such file or directory
Run Code Online (Sandbox Code Playgroud)

我如何使其工作?
但是,cd ~/Files/Scripts/Main工作.

unix linux bash scripting

79
推荐指数
7
解决办法
10万
查看次数

如何使用带有空格的路径和命令的"start"在Windows中创建批处理文件

我需要创建一个批处理文件,在Windows .cmd文件中启动多个控制台应用程序.这可以使用start命令完成.

但是,该命令中有一个路径.我还需要传递有空格的参数.这该怎么做?

例如批处理文件

start "c:\path with spaces\app.exe" param1 "param with spaces"
Run Code Online (Sandbox Code Playgroud)

windows scripting batch-file

78
推荐指数
2
解决办法
16万
查看次数

确定当前的PowerShell进程是32位还是64位?

在x64位OS平台上运行PowerShell脚本时,如何在脚本中确定脚本运行的PowerShell(32位或64位)版本?

背景
默认情况下,32位和64位版本的PowerShell都安装在64位平台(如Windows Server 2008)上.这可能会导致运行必须针对特定体系结构的PowerShell脚本时遇到困难(即使用64-用于SharePoint 2010脚本的位,以便使用64位库).

相关问题:

powershell scripting 64-bit 32-bit

78
推荐指数
3
解决办法
6万
查看次数

找到两个文本文件之间的差异,每行一个项目

我有两个文件:

档案1

dsf
sdfsd
dsfsdf
Run Code Online (Sandbox Code Playgroud)

档案2

ljljlj 
lkklk 
dsf
sdfsd
dsfsdf
Run Code Online (Sandbox Code Playgroud)

我想显示文件2中的内容,但不显示文件1中的内容,因此文件3应该如下所示

ljljlj 
lkklk 
Run Code Online (Sandbox Code Playgroud)

bash scripting awk sed file

77
推荐指数
6
解决办法
15万
查看次数

Bash中$ {}和$()之间的差异

我有两个问题,可以使用一些帮助来理解它们.

  1. ${}和之间有什么区别$()?我理解这() 意味着在单独的shell中运行命令并放置$意味着将值传递给变量.有人能帮助我理解这个吗?如果我错了,请纠正我.

  2. 如果我们可以使用for ((i=0;i<10;i++)); do echo $i; done并且它工作正常那么为什么我不能用它while ((i=0;i<10;i++)); do echo $i; done?两者的执行周期有什么不同?

linux bash scripting

77
推荐指数
2
解决办法
7万
查看次数

如何在Powershell中获取Parent的父目录?

所以,如果我有一个存储在变量中的目录,请说:

$scriptPath = (Get-ScriptDirectory);
Run Code Online (Sandbox Code Playgroud)

现在我想找到两个父级别的目录.

我需要一个很好的做法:

$parentPath = Split-Path -parent $scriptPath
$rootPath = Split-Path -parent $parentPath
Run Code Online (Sandbox Code Playgroud)

我可以在一行代码中找到rootPath吗?

powershell scripting

76
推荐指数
9
解决办法
14万
查看次数

如何在PowerShell中创建自定义类型以供我的脚本使用?

我希望能够在我的一些PowerShell脚本中定义和使用自定义类型.例如,让我假装我需要一个具有以下结构的对象:

Contact
{
    string First
    string Last
    string Phone
}
Run Code Online (Sandbox Code Playgroud)

我将如何创建它,以便我可以在以下功能中使用它:

function PrintContact
{
    param( [Contact]$contact )
    "Customer Name is " + $contact.First + " " + $contact.Last
    "Customer Phone is " + $contact.Phone 
}
Run Code Online (Sandbox Code Playgroud)

这样的事情是可能的,甚至在PowerShell中推荐?

powershell scripting

75
推荐指数
5
解决办法
7万
查看次数

使用sed,在图案的上方或下方插入一条线?

我需要编辑大量文件,方法是在唯一模式正下方或其上方插入(2)行.请告诉如何使用sed,awk,perl或shell中的任何其他内容.谢谢

some text
lorem ipsum dolor sit amet
more text
Run Code Online (Sandbox Code Playgroud)

我想在'你好我的爱,你是个肮脏的女孩'之后插入'我知道,我是,我的性感骑士',所以输出文件看起来像

some text
lorem ipsum dolor sit amet
consectetur adipiscing elit
more text
Run Code Online (Sandbox Code Playgroud)

scripting awk sed

74
推荐指数
4
解决办法
18万
查看次数