我有一个PowerShell脚本,我想将输出重定向到一个文件.问题是我无法改变调用此脚本的方式.所以我做不到:
.\MyScript.ps1 > output.txt
Run Code Online (Sandbox Code Playgroud)
如何在执行期间重定向PowerShell脚本的输出?
我需要在2000-65000shell脚本之间生成一个随机端口号.问题是$RANDOM15位数,所以我卡住了!
PORT=$(($RANDOM%63000+2001)) 如果不是因为尺寸限制,它会很好地工作.
有没有人有一个如何做到这一点的例子,可能是从/dev/urandom一个范围内提取并得到它?
目前我正在做一些从bash执行的单元测试.单元测试在bash脚本中初始化,执行和清理.该脚本通常包含init(),execute()和cleanup()函数.但它们不是强制性的.我想测试它们是否定义.
我之前通过greping和seding来源做了这个,但它似乎错了.有没有更优雅的方式来做到这一点?
编辑:以下代码片段就像一个魅力:
fn_exists()
{
LC_ALL=C type $1 | grep -q 'shell function'
}
Run Code Online (Sandbox Code Playgroud) 我遇到了许多带有变量的shell脚本,我一直认为存在严重的误解.我的理解是,按照惯例(也许很久以前就必须),环境变量都是全部的.
但是在像Bash这样的现代脚本环境中,我总是倾向于使用临时变量的小写名称约定,而仅为导出(即环境)变量使用大写的约定.例如:
#!/usr/bin/env bash
year=`date +%Y`
echo "It is $year."
export JAVA_HOME="$HOME/java"
Run Code Online (Sandbox Code Playgroud)
这一直是我对事物的看法.是否有任何权威来源同意或不同意这种方法,还是纯粹是风格问题?
我有一些简单的shell脚本编写任务,我想做
例如:从与某些正则表达式匹配的文件列表中选择工作目录中的文件.
我知道我可以使用标准的bash和grep做这种事情,但我很高兴能够破解可以在windows和linux中运行的快速脚本,而不必记住一堆命令行程序和标志等.
我试图实现这一目标,但最终对我应该获取信息的地方感到困惑,例如对当前目录的引用
所以问题是编写ruby shell脚本需要知道Ruby库的哪些部分?
我编写了一个Python脚本,用于检查某个电子邮件地址并将新电子邮件传递给外部程序.如何让这个脚本全天候执行,例如将其转换为Linux中的守护程序或服务.我是否还需要一个永远不会在程序中结束的循环,或者可以通过多次执行代码来完成它?
我有一个大约1000行的文件.我希望我的文件的一部分在与我的grep语句匹配的行之后.
即
$ cat file | grep 'TERMINATE' # It is found on line 534
Run Code Online (Sandbox Code Playgroud)
所以,我希望该行文件__CODE__可以进一步处理.
我该怎么做 ?
我希望在每次迭代中并排打印变量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) 我正在用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手册页和关于这篇文章.
我仍然无法理解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)
这里究竟发生了什么,美元符号和反斜杠如何与问题相关联?