我知道这个问题可能是一个"新人问题",但我可能犯了一个逻辑错误.
我有一个文本文件,我想搜索它是否包含字符串.我尝试了如下所示,但它不起作用:
$SEL = "Select-String -Path C:\Temp\File.txt -Pattern Test"
if ($SEL -eq $null)
{
echo Contains String
}
else
{
echo Not Contains String
}
Run Code Online (Sandbox Code Playgroud) 然而,我不仅仅是打击,而是一个不仅仅是胆怯的人.我写了一个bash脚本,它将执行我的cmake,make和c ++可执行文件.
#! /bin/bash
cmake .
make
./pcl_visualizer_demo <-- This is my executable
Run Code Online (Sandbox Code Playgroud)
这很好用,除非我的代码无法编译它执行旧的可执行文件并让我一团糟.我希望将make的输出放入if语句中,该语句仅在make成功时运行可执行文件.我在stackoverflow上尝试了很多其他帖子中的bash.一些问题似乎是make的输出不是一个字符串,例如:
OUTPUT = make
echo $OUTPUT
Run Code Online (Sandbox Code Playgroud)
得到:
[100%] Built target pcl_visualizer_demo
Run Code Online (Sandbox Code Playgroud)
但未能合作:
if [`expr match "$OUTPUT" '[100%] -eq 5]; then ./pcl_visulizer_demo; fi
Run Code Online (Sandbox Code Playgroud)
更不用说我认为这条线可能不止一件事.我也尝试过:
if [diff <(echo "$OUTPUT") <(echo '[100%] Built target pcl_visualizer_demo' -n]; then ./pcl_visulizer_demo; fi
Run Code Online (Sandbox Code Playgroud)
再次可能是我没有正确实施它.任何帮助
所以,文件夹结构如下所示:
我想要做的是将文件夹中的所有.txt文件(其(文件夹)名称包含eng)复制到目标文件夹.只是文件夹中的所有文件 - 而不是文件结构.
我用的是这个:
$dest = "C:\Users\username\Desktop\Final"
$source = "C:\Users\username\Desktop\Test1"
Copy-Item $source\eng*\*.txt $dest -Recurse
Run Code Online (Sandbox Code Playgroud)
问题是它只从每个父文件夹而不是子文件夹复制.txt文件.
如何在此脚本中包含所有子文件夹并保留eng名称检查?你能帮我么?
我在谈论PowerShell命令.我应该使用robocopy吗?
我正在尝试利用 SUID 程序。
该计划是:
#include <stdlib.h>
#include <unistd.h>
#include <string.h>
#include <stdio.h>
#define e(); if(((unsigned int)ptr & 0xff000000)==0xca000000) { setresuid(geteuid(), geteuid(), geteuid()); execlp("/bin/sh", "sh", "-i", NULL); }
void print(unsigned char *buf, int len)
{
int i;
printf("[ ");
for(i=0; i < len; i++) printf("%x ", buf[i]);
printf(" ]\n");
}
int main()
{
unsigned char buf[512];
unsigned char *ptr = buf + (sizeof(buf)/2);
unsigned int x;
while((x = getchar()) != EOF) {
switch(x) {
case '\n': print(buf, sizeof(buf)); continue; break;
case …
Run Code Online (Sandbox Code Playgroud) 我想删除多个文件名的最后11个字符。例如,我有以下文件名:
ABCDE_2015_10_20
HIJKL_2015_10_20
MNOPQ_2015_10_20
RSTUV_2015_10_20
Run Code Online (Sandbox Code Playgroud)
想要重命名为
ABCDE
HIJKL
MNOPQ
RSTUV
Run Code Online (Sandbox Code Playgroud)
我尝试使用以下代码:
Get-ChildItem 'E:\Thomson Reuters\Stage' | rename-item -newname { [string]($_.name).substring($_.name.length -14) }
Run Code Online (Sandbox Code Playgroud)
谁能告诉我我要去哪里错了?
cd folder &>/dev/null ||( mkdir folder && cd folder ) && git clone https://github.com/user/my-project.git
Run Code Online (Sandbox Code Playgroud)
运行上述命令时,我遇到了问题(我认为),即()
生成一个子shell并运行命令,然后在运行 git clone 时我不在预期的目录中。有没有办法运行这条线?我目前的解决方案是
cd folder &>/dev/null || mkdir folder && cd folder && git clone https://github.com/user/my-project.git
Run Code Online (Sandbox Code Playgroud)
问题是,cd folder
即使目录存在,我也会运行两次
我有一个目录,其中包含一个名为 Bruce.txt 的文件。我需要将文件名复制到平面文件中。我尝试使用该copy-item
命令,但它复制的是内容而不是名称。
是否有将 Bruce.txt(名称而不是内容)复制到平面文件的命令?所以在它完成后会有一个名为 process.txt 的文件,它的内容将是 Bruce.txt。我尝试使用
Copy-Item -Path "C:\Users\Bruce\deploy\*.txt" -Destination "C:\Users\Bruce\process.txt"
.
deploy 内部是一个名为 Bruce.txt 的文本文件,其内容为select count() from EMP_NR
.
我需要 Bruce.txt 将名称复制到 process.txt 而不是 Select count() 等。
对于 Shell 脚本,我使用 ls 命令,它的效果很好,我可以为 Powershell 使用什么?
我一直试图为我的项目改变旧的Shell脚本.我已经做过一些研究,但是:
在shell脚本中使用但是对我来说还不太清楚.
#!/bin/bash
cd /home/dir1/dir2/dir3
FILES=../lib/*
CLASSPATH=.:../conf/
for f in $FILES
do
CLASSPATH=$CLASSPATH:$f
done
echo $CLASSPATH
Run Code Online (Sandbox Code Playgroud)
他们在这里尝试做什么,是在两个目录中寻找相同的命名文件并将它们分配给CLASSPATH
?
我有以下脚本,其中包含tail --pid=${somepid} -f ${mylogs}
. 我想捕获SIGTERM
该 PID 并对其进行一些正常关闭,因为该进程无法理解SIGTERM
并痛苦地终止。
echo "pid: $$"
trap_with_arg() {
func="$1" ; shift
for sig ; do
trap "$func $sig" "$sig"
done
}
func_trap() {
echo Trapped: $1
}
trap_with_arg func_trap INT TERM EXIT STOP
tail -f /dev/null
Run Code Online (Sandbox Code Playgroud)
当我kill -15 ${bashpid}
从另一个终端使用时,除非使用 CTRL+C,否则不会打印捕获的信号。当最后一个命令不是一个进程,而是一个read
内置的 shell 时,捕获的信号将立即打印。为什么会这样呢?如果我执行以下操作,它会起作用:
tail -f /dev/null &
wait $!
Run Code Online (Sandbox Code Playgroud) 以下查询在PowerShell中搜索文件的位置.有没有办法只返回目录而不是目录属性和文件名?
Get-ChildItem -Path C:\random\random -Filter nameofile -Recurse
Run Code Online (Sandbox Code Playgroud)