如何在bash脚本中设置全局环境变量?
如果我喜欢的话
#!/bin/bash
FOO=bar
Run Code Online (Sandbox Code Playgroud)
...要么
#!/bin/bash
export FOO=bar
Run Code Online (Sandbox Code Playgroud)
... vars似乎停留在本地环境中,而我希望在脚本执行完毕后继续使用它们.
我想浏览一堆目录并将所有以_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的替换已经丢失.有什么诀窍?
我试图为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工作.
我需要创建一个批处理文件,在Windows .cmd文件中启动多个控制台应用程序.这可以使用start命令完成.
但是,该命令中有一个路径.我还需要传递有空格的参数.这该怎么做?
例如批处理文件
start "c:\path with spaces\app.exe" param1 "param with spaces"
Run Code Online (Sandbox Code Playgroud) 在x64位OS平台上运行PowerShell脚本时,如何在脚本中确定脚本运行的PowerShell(32位或64位)版本?
背景
默认情况下,32位和64位版本的PowerShell都安装在64位平台(如Windows Server 2008)上.这可能会导致运行必须针对特定体系结构的PowerShell脚本时遇到困难(即使用64-用于SharePoint 2010脚本的位,以便使用64位库).
相关问题:
我有两个文件:
档案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) 我有两个问题,可以使用一些帮助来理解它们.
${}和之间有什么区别$()?我理解这()
意味着在单独的shell中运行命令并放置$意味着将值传递给变量.有人能帮助我理解这个吗?如果我错了,请纠正我.
如果我们可以使用for ((i=0;i<10;i++)); do echo $i; done并且它工作正常那么为什么我不能用它while ((i=0;i<10;i++)); do echo $i; done?两者的执行周期有什么不同?
所以,如果我有一个存储在变量中的目录,请说:
$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脚本中定义和使用自定义类型.例如,让我假装我需要一个具有以下结构的对象:
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中推荐?
我需要编辑大量文件,方法是在唯一模式正下方或其上方插入(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)