Shell 管道中变量的范围

下面的shell脚本将检查磁盘空间,如果使用率超过10%,则将变量diskfull更改为1 最后一次回显总是显示0 我在if子句中尝试了global diskfull=1,但没有成功。 如果磁盘消耗超过10%,如何将变量更改为1 #!/bin/sh diskfull=0 ALERT=10 df -HP | grep -vE '^Filesystem|tmpfs|cdrom' | awk '{ print $5 " " $1 }' | while read output; do #echo

Shell 发现修剪不起作用

我正在尝试查找项目中的所有ruby文件。但是,我想忽略目录供应商下的所有文件 find . -name .vendor -prune -o -name '*.rb' -print 上面的命令不起作用。有人知道修复方法吗?试试: find-名称“*.rb”-全名“/vendor/*”-打印 您可能必须退出(即写入\!)字符,具体取决于您的shell。查找-名称“.rb”-全名“/vendor/”|确认供应商工作。但是查找/Users/dorelal/dev/working/demo_app-na

VIM:使用自定义函数作为shell的参数

我在一个vim文件中有以下代码,它在编辑php文件时是自动来源的。但我不能让它工作 "PHP config if !exists("g:addPath") let g:addPath = 1 let $PATH=$PATH.';C:\Program Files\Mozilla Firefox' endif function! MakeThisUrl() let s:url='http://localhost/' let s:url=s:url. expand('%') r

Shell 如何一次创建grep.txt.tar.gz.py文件

我可以用 ls|grep \.py$ 列出所有以.py文件结尾的文件,但我似乎很难一次性grep所有的.py&.txt&.tar.gz文件 任何人都可以帮我不需要外部命令。使用shell(bash/ksh) ls | grep -E '\.(py|txt|tar\.gz)$' 不需要外部命令。使用shell(bash/ksh) 分别ls-d*.py*.txt*.tar.gz分别ls-d*.py*.txt*.tar.gz或甚至仅仅:ls*{txt,tar,gz,py}仅当他的目的就是那样,仅列

Shell 如何将此程序转换为在64位机器上工作?

此代码必须在64位机器上工作,但目前不工作。为了让这个脚本正常工作,我需要修复什么 Option Explicit ''' ************************************************************************* ''' Module Constant Declaractions Follow ''' ********************************************************************

无法在shell脚本中源属性文件

我尝试了以下两种方法来获取属性文件的源 #!/bin/sh . import.properties echo $USER_ID echo $INPUT_FILE 它说: ./test.sh[3]: import.properties: not found 当尝试使用source import.properties时,它给出的消息如下: ./test.sh[3]: source: not found. 我对脚本和环境非常陌生。请告诉我这里缺少什么?要通过dot命令找到,文件必须是可读的(

Shell 使用脚本导出环境变量

我需要在Ubuntu中设置一些环境变量。我做了以下工作,它是有效的: export PATH="/home/vagrant/ns-allinone-2.35/bin:/home/vagrant/ns-allinone-2.35/tcl8.5.10/unix:/home/vagrant/ns-allinone-2.35/tk8.5.10/unix:$PATH" export LD_LIBRARY_PATH="/home/vagrant/ns-allinone-2.35/otcl-1.14:/hom

Shell 如何在第2列上换行

我有一个文本文件: Function Description concat Returns the concatenation of the arguments. contains Returns true if the first argument string contains the second argument string; otherwise returns false. 我想将文本换行到第2列,结果应该是: Function

Shell 在while循环中使用grep

使用这样的shell脚本,是否可以遍历grep的结果: while read line ; do ... done < grep ... 6: foo 7: bar Total: 7 lines 读行时;做 ... 完成

如何通过shell脚本导出变量?

a、 嘘 我们可以在命令行中执行source./a。但是我需要通过shell脚本进行导出 b、 嘘 没有错误。。。但是命令行中的$x将不显示任何内容。所以它没有得到出口 你知道怎么做吗 a、 嘘 #/垃圾箱/垃圾箱 导出x=/usr/local ----------- admin@client:/a.sh admin@client:echo$x admin@client: 您不能通过shell脚本进行导出,因为shell脚本在子shell进程中运行,并且只有子shell的子shell将继承

在Mac上编写rsyncshell脚本以将本地目录与远程web服务器持续同步

我需要在Mac OS X Mountain Lion上设置一个shell脚本,使用SSH连接(隧道)或SFTP将本地目录同步到远程目录(web服务器),并使其每30秒连续运行一次 我还需要从同步中排除某些文件或文件夹 同步将是单向的(mac->webserver) 我需要实现的基本参数如下: Local path: /Volumes/path/to/local/directory Remote server: example.com username: someUser password: so

Shellscript将消息发送到套接字并保持连接处于活动状态

我对shell脚本非常陌生,我的问题是我不确定如何使套接字连接保持活动状态。 我不确定我写的脚本是否在做它应该做的事情 我尝试做的是,我相信我创建了140个套接字,并向这些套接字发送消息,我希望这些套接字连接保持活动状态 for (( i=0; i<140; i++)) do echo "Message" > /dev/tcp/187.98.06.01/4599 done ((i=0;i/dev/tcp/187.98.06.01/4599)的 完成 我将此消息发送到一个服务器,我

用于合并由空行分隔的行的Shell脚本

我有一个巨大的文本文件(500K行),其中一些行被分割成多行。我正在尝试用拆分行获取记录,显示在一行中。当该行被拆分时,在下一行开始之前有一个空行。现在,我正在遍历每一行,在开始时测试字符串(AAAA |),以确定它是否是新行,然后与下一行连接。但这似乎需要很多时间,我想知道是否有更好的方法来做到这一点。此外,一些行被分成多行,每个新记录都以“AAAA |”开头 输入文件: AAAA|XXXX|YYYY|ZZZZ|532920-1*TYCO ELECTRONICS AMP#HDR4-2B-320

Shell 在Windows 7上,需要将A\中不存在的文件复制到B\中\

我需要将特定类型(*.vcproj)的文件从文件夹树a\复制到树B\中的相应文件夹。在a\下会有多个级别的嵌套文件夹,在B\中存在相同的文件夹结构,但a\中的某些文件夹可能不在B\中,反之亦然 我可以访问cygwin、perl和powershell。只是不知道该怎么做。应该做你需要做的robocopy./a./b*.vcproj/s将使此: /a /dir test.vcproj another.vcproj /b /otherDir 为此: /a /dir

如何检查文件是否已成功上载&;是否在shell脚本中的某个时间重试上载?

我正在运行shell脚本,该脚本是上载结果文件以删除服务器。 有一天,ftp服务器崩溃了,但没人知道,所以每天的数据没有按时生成 为了防止这个问题,我的经理让我检查上传结果,并尝试在一定时间内上传。(每小时尝试2~3次。) 我有问题。 1.如何检测文件上传是否成功? 2.有时我如何重新安排文件上载 仅供参考,我们的系统在RHEL5上运行,下面是文件上传代码 ftp -n -v ${FTP_HOST} << END_SCRIPT user ${FTP_USER} ${FTP_PASS

从汇编语言(.asm,x86)执行shell脚本

我想从.asm文件中执行一个shell脚本(与下面的代码完全相同),但在汇编中找不到以下行的替代方法。我正在使用masm611汇编和编译这些文件 System.Diagnostics.Process proc = new System.Diagnostics.Process(); proc.StartInfo.FileName = "myscript.sh"; proc.Start(); 首先,你不能说是哪种架构;所以这是无法回答的。一个简单的解决方案应该是用C语言编写代码,然后编译成汇编代码

Shell 在Stata中突出显示时删除文件或替换文件

我打开一个.txt文件。对它做一些修改。那么我想用同样的名字把它打印出来。要做到这一点,我认为要么在我将文件打印出来之前删除它,要么在打印过程中替换文件。作为备份,我可以手动删除.txt执行相关代码 不过,我想通过Stata来做这件事。是否可以: 1. Delete a .txt file within a Stata .doe--say with a shell command ? 2. Overwrite a .txt file in the outsheeting process ? 我

Unix/shell脚本是如何工作的?

我只是好奇Unix环境的逻辑。我的印象是Unix是一个操作系统,但也是一个shell。作为一个子集,有更多特定的shell,如Bourne、Bash和Korn shell。这些shell是解释器,它们有自己的功能来解释脚本,还有ping、pwd等功能?所以贝壳里面有贝壳?我说的一切都对吗?Unix操作系统不是外壳 shell只是一个程序,通过运行程序和操作数据流,它可以轻松地与计算机交互 您提到的“函数”是程序,而不是shell的一部分 如果需要,可以从另一个shell运行shell。例如,您在

Shell 将命令输出写入文件

我在尝试将shell命令的输出写入文件时遇到问题 这很有效 cssbeautify basket.css > file.css 这不是。css现在没有内容 cssbeautify basket.css > basket.css 这是正常的行为吗?如何避开它 编辑:这是我用来美化文件夹中所有文件的命令。你可能会发现它很有用 for f in *; do cssbeautify $f > temp_file && mv temp_file $f; done 不

Shell脚本-单行-expr命令

我正在使用这个3行shell脚本,它可以正常工作 比较两个文件的大小 FIRSTV=`stat -c%s crk03-rtr-002-20140504.rsc` SECONDV=`stat -c%s crk03-rtr-002-20140503.rsc` echo `expr $FIRSTV - $SECONDV` 如果有一种方法可以在一行中使用expr或更好的命令来完成这项工作,它可以告诉我两个文件之间的字节数差异 是的,你可以做: expr `stat -c%s crk03-rtr-002

Shell 将标准输出重定向到文件并添加时间戳

我发现此脚本()用于重定向脚本/程序的stdout/stderr并添加时间戳: #!/bin/bash while read line ; do echo "$(date): ${line}" done 使用此脚本(predate.sh)时,如 它工作得很好,但是当MyApp崩溃或被杀死时,predate.sh脚本会持续运行,并且不会终止。有人知道如何解决这个问题吗 可能存在缓冲问题。我认为这会对你有用: producer | stdbuf -oL gawk '{print strft

Shell 在到达(或传递)路径之前跳过“查找”中的项目

我有一个长时间运行的脚本,它处理从find语句返回的大量文件,并定期存储最近处理的路径。这允许脚本在后续运行中尝试从该路径之后恢复 目前,我通过运行排序的查找,直到找到一个等于或大于上一个处理路径的路径 例如: #!/bin/bash tmp_dir=$(mktemp -d "/tmp/tmp.$$.XXXXXX") trap 'rm -R "$tmp_dir"; echo "$last_path" > ~/.last_path;' INT HUP TERM EXIT last_path

VBScript Shell-Windows CMD之间的差异

我正在使用VBScript中的Wscript.Shell对象来控制隐藏的Shell 我想在应用程序启动之前删除一些测试文件,所以我研究了MSDOS命令来有条件地删除文件 if exist name del name 这在CMD中运行良好,不会对文件不存在发出警告。 但是,在VBScript shell中,这将生成文件不存在警告,就好像如果存在不是命令的一部分一样 这尤其令人恼火,因为VBScript中的shell错误通过MsgBox显示并阻止应用程序运行。del是一个内在/内部命令,由shel

Shell 自动重新启动服务器的脚本不起作用

我尝试创建一个shell脚本,它应该在服务器崩溃时自动重启服务器 我的脚本不工作,而是在第4行抛出以下错误: 语法错误:意外的文件结尾 我的脚本非常简单: while true then java -Xms25600M -Xmx25600M -jar server.jar 谁能告诉我,为什么会抛出这个错误。我需要如何调整脚本以获得所需的结果?如果脚本应该用Bourne shell sh编写,那么我认为正确的语法如下所示: while true do java -Xms25600M -Xmx25

Shell 在与Unix类似的批处理命令中将文件类型的管道输出到grep(使用doskey)

我已经创建了用于查看文件输出的别名 doskey vinfo=type %MY_FILE% 我想做的是 vinfo | grep 'search_text' 但是它显示了vinfo(文件内容)的输出,但没有将该输出传递给grep。当我转到文件位置并执行 type filename | grep 'search_text' 它起作用了 我想我可以做一些类似的事情 sinfo = type %MY_FILE% | grep $* 但这不起作用。正确的方法应该是什么 doskey sinfo=

Shell 搜索符号模式

我正在尝试使用此awk脚本: awk -v count=0 '/`),`/ { count++ } END { print count }' sample.sql 但我得到了以下错误: ERROR: awk: line 1: runaway regular expression /\),/ {.. 为什么我会出现这个错误,我能做些什么来修复它 目标是使用反勾号和右括号计算行数,如: INSERT INTO test (`id`, `Address`) VALUES (1,'Delhi'),(

shell命令中缺少右括号?

我正在尝试向makefile添加警告消息。Make在查找右括号时遇到问题 以下内容来自我的GNUmakefile: 341 ALIGNED_ACCESS = $(shell cat config.h | $(EGREP) -c "^#define NO_UNALIGNED_DATA_ACCESS") 342 ifeq ($(ALIGNED_ACCESS),0) 343 $(info WARNING: NO_UNALIGNED_DATA_ACCESS is not defined in co

输出顺序非常奇怪的shell排序

我正在使用文本文件对DUP进行排序(并删除DUP)。移除DUP很好 原始文件的格式相当随机-下面是一个小测试用例: (q0 (q1 a)) (q1p (q1c c)) (q1q (q1 e)) (q1 (q2 s)) 一旦分类,我就会变得愚蠢: sort -u text > outfile (q0 (q1 a)) (q1p (q1c c)) (q1 (q2 s)) (q1q (q1 e)) 通过一点测试,显然q1(或q2或其他)将介于q1p和q1q之间。究竟为什么这两个角色之间会出现

Shell脚本-是否可以在后台执行.sh文件

我有一个.sh脚本。运行此特定文件之后。它显示已删除文件的列表。我希望在后台执行此文件,而不是在运行此命令的shell上显示 请告知,有什么办法可以做到这一点吗?谢谢。就这样运行它: ./script.sh >/home/username/output.txt 2>&1 & 最后的&将命令发送到后台 /home/username/output.txt 2>&1将标准错误和标准输出发送到output.txt 要在注销后保持其运行,请将其更改为: nohup ./scr

Shell sed括号表达式和捕获组

我有以下需要通过sed处理的字符串集: start-pattern [SYSTEM] capture ............................... FAIL [ 2.825 s] [SYSTEM] capture ............................... FAIL [ 2.825 s] [DEBUG] capture :: capture :: capture .......... FAIL [ 0.866 s] [DEBUG] capture ::

Shell 通过Vagrant完成内联脚本后,进程停止

在Vagrant中,我运行一个内联脚本来启动Weblogic和NodeManager /opt/weblogic/user_projects/domains/custom/startWeblogic.sh & /opt/weblogic/user_proejcts/domains/custom/bin/startNodeManager & ps-ef显示运行内联脚本时两个进程都在运行。但是,如果我在来宾计算机中使用ssh并运行ps-ef,则两个进程都找不到。有没有办法让进程在内

Shell 终止运行时间超过24小时$pid的进程(命令)

无法筛选时间,请帮助我仅获取运行超过24小时的进程/命令 ps -ef ps-ef的等价物是ps-eo-uid、pid、ppid、c、stime、tty、time、cmd etime ELAPSED elapsed time since the process was started, in the form [[DD-]hh:]mm:ss. start STARTED time the command started. If th

Shell 为什么命令组的管道仅适用于某些命令?

我感兴趣的是将输入的标题保持在grep输出中,就像问题中一样 虽然在问题中提出了一个有效的解决方案(使用sed),但它吸引了我的注意。例如,它允许使用grep--color。它建议使用命令head和grep将输入管道化到a,例如: ps -ef | { head -1; grep python; } 但是,正如链接答案和注释中所述,这并不适用于管道左侧的所有命令。它适用于ps或lsof,但不适用于df、ls等。使用它们时,仅打印组中第一个命令的输出: $ df | { head -1; gre

Shell 在Go中传输命令时从控制台读取

我需要一种从控制台读取两次输入的方法(1-从catoutupt,2-用户输入密码),如下所示: cat./test_data/test.txt|应用程序帐户导入 我的当前代码跳过密码输入: reader := bufio.NewReader(os.Stdin) raw, err := ioutil.ReadAll(reader) if err != nil { return cli.NewExitError(err.Error(), 1) } wlt, err := wallet.De

从TKGUI运行shell脚本

我有5个不同的shell脚本,可以从不同的日志文件中提取数据,我用Tcl/Tk编写了一个GUI,将所有脚本整合到一个界面上,还制作了输入条目小部件,为存储日志的shell脚本中使用的变量提供文件夹位置,我没有掌握的一件事是如何将shell脚本与TKGUI命令按钮集成,并在文本小部件中显示输出 任何建议 谢谢如果shell脚本运行速度相当快,最好的方法是使用exec # If the scripts are marked executable set output [exec thescript.

Shell 导出环境变量的docker运行脚本

我已经搜索了一些类似的问题,这解释了这些命令之间的差异,但无助于解决我的问题 例如,我有一个名为myscript的脚本: #!/bin/bash export PLATFORM_HOME="$(pwd)" 并在Dockerfile中具有以下行: ... COPY myscript.sh / RUN ./myscript.sh 我还尝试使用ENTRYPOINT,而不是在调用脚本之前运行或声明变量,所有这些都没有成功 我想要实现的是PLATFORM\u HOME可以从使用该文件作为基础的其他Do

Shell csh命令未找到总是出现在ubuntu终端中

我想在ubuntu下用终端运行一个程序。我使用以下命令安装了csh: sudo apt get install csh 并且已成功安装,输出为: Reading package lists... Done Building dependency tree Reading state information... Done csh is already the newest version (20110502-2.1ubuntu1). 0 upgraded, 0 newly inst

shell删除以图案开头的行的图案后的空白

输入: pmCabinetFanSpeed PMCabinetFanExternal 机柜温度 空气压力 61 , , , 1314 1537 预期产出: <measType p="1">pmCabinetFanSpeed</measType> <measType p="2">pmCabinetFanSpeedExternal</measType> <measType p="3">pmCabinetTemperature<

Shell 当我更新oh my zsh时,我遇到了一个错误。我如何修复它?

我在最近的ohmyzsh更新中遇到了类似的问题。.oh my zsh下的一个目录拥有777权限。将该目录更改为755解决了我的问题。我不知道这是否对你有帮助,因为那些文件夹似乎已经有755个权限。尝试导航到这些文件夹并手动检查权限。尝试更改。哦,我的zsh/权限: [oh-my-zsh] Insecure completion-dependent directories detected: drwxr-xr-x 6 501 admin 204 3 2 2016 /usr/local

Shell:如何确定文本文件中的行长度不超过2048字节

我意识到文本文件中一行的大小不太可能有机地超过2048字节。但我仍然认为知道如何确保情况并非如此是非常有价值的 编辑:我只是想说我问这个问题的原因是因为我正在编写一个脚本来验证文件是否是POSIX定义的文本文件。其中一项要求是,文本文件中的任何行的长度不得超过{line_MAX}字节(包括换行符)。在Ubuntu和FreeBSD上,该值为2048 在GNULinux上,您不必担心这个限制,因为它将允许只受内存限制的行长度。然而,FreeBSD确实施加了这个限制,我最近认真地学习FreeBSD,所

Shell 脚本手动运行,不在Cron中工作

我可以手动运行我的脚本,所有命令都可以正常运行,当我在cron中运行脚本时,会抛出一个错误 剧本 #! /bin/sh -x PATH=/bin:/sbin:/usr/bin:/usr/sbin /bin/sh /etc/profile increment=0 if [ $increment != 0 ] then sqlcmd -h-1 -S ***** -U sa -P '*****' -d abc -i input.sql -W -w 1024 -s"," >> out

Shell 如何获取从最后一个匹配到文件结尾的行?

需要将最后一次匹配后的行打印到文件末尾。匹配的数量可以是任意的,也不确定。我有一些文本如下所示 MARKER aaa bbb ccc MARKER ddd eee fff MARKER ggg hhh iii MARKER jjj kkk lll 所需输出为 jjj kkk lll 我是否将awk与RS和FS一起使用以获得所需的输出?请尝试以下内容 tac file | awk '/MARKER/{print val;exit} {val=(val?val ORS:"")$0}' | tac

Shell 如何使用一些自定义文本打印solaris服务器的本地磁盘

我正在编写一个shell脚本来获取带有一些自定义文本的本地磁盘列表。 我实现了打印输出,但它不是在要求的格式。请帮助更正代码 代码: 输出为一行 Solaris.disk_使用情况装载容量Solaris.disk_使用情况/7%Solaris.disk_使用情况/devices0%Solaris.disk_使用情况/system/contract0%Solaris.disk_使用情况/proc0% 预期产量为 Solaris.disk_usage.root 7% Solaris.disk_us

如何使用shell脚本在gnuplot中绘制数字列表

例如,我有一个值列表,如下所示 list = ( 12 51 2 7 9 30) 如何在shell脚本中使用gnuplot绘制列表?一种方法是: gnuplot -p -e "array Data[6] = [12, 51, 2, 7, 9, 30]; plot Data w lp pt 7" 不幸的是,您已经预先定义了数组的大小(这里是:6)。 尽管如此,还是应该有一种方法将特殊文件名'-'与内联数据一起使用(请参见帮助特殊文件名)。您可以随后在gnuplot脚本中添

Shell 如何使用UNIX工具(sed/awk/etc)仅替换此特殊文件格式中特定文件的给定密钥?

我想用文件2中的值替换文件1中的位置值。例如,对于给定的示例,location值应该从24更改为32,从25更改为34 文件1: 文件2: 输出 首先使用awk 说明:GNUsed具有类似于awk中的getline命令的功能。我们首先转换file2,使其行看起来像file1(首先是sed),然后将结果导入另一个sed命令。每次后者看到一个“位置”行时,它都会将其替换为从stdin读取的一行。这一次,如果file2没有足够的值,那么该行将被删除。不要强迫某人在知道问题是什么之前点击并阅读正文。(

从shell脚本上载Github工件

我正在尝试一个GitHub操作,需要上传一个工件 但由于我已经在进行操作,我不能调用操作/上传-artifact@v2 有一些答案建议下载我的行动,但这一个是在JS中,我的是在shell中。 此外,GitHub API没有给出任何关于如何上传的结果(仅下载、列出或删除) 因此,我的问题是:有没有办法从shell脚本将工件上传到GitHub?您可以在各个步骤之间共享数据。例如,您可以在第一步执行操作,然后在第二步上载结果 查看更多详细信息 如果您想添加将工件直接上传到操作的功能,那么应该使用Git

Shell 断开大CSV多行文件-基于特定字符串计数

我有一些csv格式的数据(比如50000行),如下所示。问题是,我想根据一个条件将文件分解成更小的文件。。。 我将搜索字符串模式“ABCD000” 如果该模式在大文件中被发现100次,那么它应该用这100条记录创建一个新文件。 这个过程从101记录继续 挑战在于,CSV中的数据是多行数据。因此,当我断开该文件时,它应该创建一个新文件,其中包含“ABCD0000”字符串的第101个查找上方的所有行 字符串模式在任何地方都保持不变 输入CSV文件 输出应该是 File1.csv ABC0001,Ra

上一页   1   2   3    4   5   6  ... 下一页 最后一页 共 437 页