标签: scripting

如何在执行期间将PowerShell的输出重定向到文件

我有一个PowerShell脚本,我想将输出重定向到一个文件.问题是我无法改变调用此脚本的方式.所以我做不到:

 .\MyScript.ps1 > output.txt
Run Code Online (Sandbox Code Playgroud)

如何在执行期间重定向PowerShell脚本的输出?

powershell scripting stdout

185
推荐指数
9
解决办法
54万
查看次数

Bash脚本中范围内的随机数

我需要在2000-65000shell脚本之间生成一个随机端口号.问题是$RANDOM15位数,所以我卡住了!

PORT=$(($RANDOM%63000+2001)) 如果不是因为尺寸限制,它会很好地工作.

有没有人有一个如何做到这一点的例子,可能是从/dev/urandom一个范围内提取并得到它?

bash shell scripting

177
推荐指数
11
解决办法
16万
查看次数

确定bash中是否存在函数

目前我正在做一些从bash执行的单元测试.单元测试在bash脚本中初始化,执行和清理.该脚本通常包含init(),execute()和cleanup()函数.但它们不是强制性的.我想测试它们是否定义.

我之前通过greping和seding来源做了这个,但它似乎错了.有没有更优雅的方式来做到这一点?

编辑:以下代码片段就像一个魅力:

fn_exists()
{
    LC_ALL=C type $1 | grep -q 'shell function'
}
Run Code Online (Sandbox Code Playgroud)

testing bash scripting function

171
推荐指数
7
解决办法
6万
查看次数

更正Bash和shell脚本变量大小写

我遇到了许多带有变量的shell脚本,我一直认为存在严重的误解.我的理解是,按照惯例(也许很久以前就必须),环境变量都是全部的.

但是在像Bash这样的现代脚本环境中,我总是倾向于使用临时变量的小写名称约定,而仅为导出(即环境)变量使用大写的约定.例如:

#!/usr/bin/env bash
year=`date +%Y`
echo "It is $year."
export JAVA_HOME="$HOME/java"
Run Code Online (Sandbox Code Playgroud)

这一直是我对事物的看法.是否有任何权威来源同意或不同意这种方法,还是纯粹是风格问题?

bash shell scripting naming-conventions capitalization

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

如何使用Ruby进行shell脚本编写?

我有一些简单的shell脚本编写任务,我想做

例如:从与某些正则表达式匹配的文件列表中选择工作目录中的文件.

我知道我可以使用标准的bash和grep做这种事情,但我很高兴能够破解可以在windows和linux中运行的快速脚本,而不必记住一堆命令行程序和标志等.

我试图实现这一目标,但最终对我应该获取信息的地方感到困惑,例如对当前目录的引用

所以问题是编写ruby shell脚本需要知道Ruby库的哪些部分?

ruby shell scripting

163
推荐指数
10
解决办法
13万
查看次数

如何使Python脚本像Linux中的服务或守护程序一样运行

我编写了一个Python脚本,用于检查某个电子邮件地址并将新电子邮件传递给外部程序.如何让这个脚本全天候执行,例如将其转换为Linux中的守护程序或服务.我是否还需要一个永远不会在程序中结束的循环,或者可以通过多次执行代码来完成它?

python linux scripting daemons

163
推荐指数
11
解决办法
26万
查看次数

如何在匹配grep表达式的行之后获取文件的一部分?(第一场比赛)

我有一个大约1000行的文件.我希望我的文件的一部分在与我的grep语句匹配的行之后.

$ cat file | grep 'TERMINATE'     # It is found on line 534
Run Code Online (Sandbox Code Playgroud)

所以,我希望该行文件__CODE__可以进一步处理.

我该怎么做 ?

bash shell scripting grep

163
推荐指数
7
解决办法
19万
查看次数

没有打印换行符的awk

我希望在每次迭代中并排打印变量sum/NR.我们如何避免awk在每次迭代中打印换行符?在我的代码中,默认情况下会在每次迭代中打印换行符

for file in cg_c ep_c is_c tau xhpl
printf "\n $file" >> to-plot.xls
    for f in 2.54 1.60 800 
        awk '{sum+=$3}; END  {print  sum/NR}' ${file}_${f}_v1.xls >> to-plot-p.xls
    done
done
Run Code Online (Sandbox Code Playgroud)

我希望输出看起来像这样

cg_c ans1  ans2  ans3  
ep_c ans1  ans2  ans3 
is_c ans1  ans2  ans3
tau  ans1  ans2  ans3 
xhpl ans1  ans2  ans3
Run Code Online (Sandbox Code Playgroud)

我目前的出局是这样的

**cg_c**
ans1
ans2
ans3
**ep_c**
ans1
ans2
ans3
**is_c**
ans1
ans2
ans3
**tau**
ans1
ans2
ans3
**xhpl**
ans1
ans2
ans3
Run Code Online (Sandbox Code Playgroud)

scripting awk newline

155
推荐指数
4
解决办法
16万
查看次数

如何在bash脚本中检查文件名的扩展名?

我正在用bash编写一个每晚构建脚本.
一切都很好,花花公子除了一个小小的障碍:


#!/bin/bash

for file in "$PATH_TO_SOMEWHERE"; do
      if [ -d $file ]
      then
              # do something directory-ish
      else
              if [ "$file" == "*.txt" ]       #  this is the snag
              then
                     # do something txt-ish
              fi
      fi
done;
Run Code Online (Sandbox Code Playgroud)

我的问题是确定文件扩展名,然后相应地采取行动.我知道问题出在if语句中,测试txt文件.

如何确定文件后缀是否为.txt?

bash scripting file

153
推荐指数
7
解决办法
20万
查看次数

Bash中的eval命令及其典型用法

阅读了bash手册页和关于这篇文章.

我仍然无法理解eval命令究竟是什么以及它的典型用途.例如,如果我们这样做:

bash$ set -- one two three  # sets $1 $2 $3
bash$ echo $1
one
bash$ n=1
bash$ echo ${$n}       ## First attempt to echo $1 using brackets fails
bash: ${$n}: bad substitution
bash$ echo $($n)       ## Second attempt to echo $1 using parentheses fails
bash: 1: command not found
bash$ eval echo \${$n} ## Third attempt to echo $1 using 'eval' succeeds
one
Run Code Online (Sandbox Code Playgroud)

这里究竟发生了什么,美元符号和反斜杠如何与问题相关联?

linux bash shell scripting eval

152
推荐指数
5
解决办法
33万
查看次数