
如何阅读shell命令的源代码?
我想阅读使用linux命令编写的实际源代码。我已经获得了使用它们的一些经验,现在我认为是时候与我的机器进行更深层次的互动了。我在http://directory.fsf.org/wiki/GNU中找到了一些命令。不幸的是,我找不到基本的命令,例如“ls”,在我看来这很容易上手。我如何准确地读取像’ls’这样的简单shell命...
2024-01-10
在shell中获取文件大小(以字节为单位)的可移植方式?
在Linux上,我使用stat --format="%s" FILE,但是我可以访问的Solaris没有stat命令。那我该怎么用呢?我正在编写Bash脚本,无法在系统上真正安装任何新软件。我已经考虑过使用:perl -e '@x=stat(shift);print $x[7]' FILE甚至:ls -nl FILE | awk '{print $5}'但是,这些看上去都不明智-运行Perl只是为了获取文件大小?还是...
2024-01-10
shell缓冲区大小是4k还是64k?
我在多个地方读到,管道的默认缓冲区大小为4kB(例如,在此处),我ulimit-a倾向于确认该语句:$ ulimit -acore file size (blocks, -c) 0data seg size (kbytes, -d) unlimitedscheduling priority (-e) 0file size (blocks, -f) unlimitedpending signals ...
2024-01-10
如何反转shell字符串中的单词列表?
我有一个字符串中的单词列表:str="SaaaaE SeeeeE SbbbbE SffffE SccccE"我想扭转它以获得"SccccE SffffE SbbbbE SeeeeE SaaaaE"我该怎么做ash?回答:您可以使用awk以下方法:echo "$str" | awk '{ for (i=NF; i>1; i--) printf("%s ",$i); print $1; }'...
2024-01-10
“参数列表太长”限制是否适用于shell内置函数?
假设我想通过标准输入将非常长的字符串传递给命令:string="a very long list of words ..."我能说......么:# not using double quotes around $string is deliberateprintf '%s\n' $string | cmd ...要么cmd <<< $string甚至通过管道将其发送给xargs:printf '%s\n' $string | xargs cmd ...有人可以澄清一下吗?回答:在bash中,操作系统强制...
2024-01-10
异步Shell命令
我正在尝试使用Shell脚本来启动命令。我不在乎是否/何时/如何/为什么完成。我希望该过程开始并运行,但是我希望能够立即回到我的外壳…回答:您可以只在后台运行脚本:$ myscript &请注意,这与将&脚本放入内部不同,后者可能无法完成您想要的操作。...
2024-01-10
使用PHP的交互式shell
只是想知道,是否有可能单独使用PHP创建一个交互式shell。我的意思是您在数据库,python等方面拥有类似的东西。如果是,怎么办?回答:是的,有可能。为了进行交互,该程序必须能够等待并从 stdin中 读取用户输入。在PHP中,您可以通过向打开文件描述符来从 stdin中读取'php://stdin'。从一个不同的...
2024-01-10
如何在shell中重复破折号(连字符)
如何-在shell中重复n次字符?我已经阅读并尝试过此操作,但这不适用于-。它引发错误invalid option。以下是我使用的确切命令:printf '-%.0s' {1..100}原始发布行: printf '-%0.s' {1..100}我还尝试-通过转义来转义,\但在这种情况下,它会重复\-n次。回答:这将引发错误:$ printf '-%.0s' {1..100}; echo ""bash: printf: ...
2024-01-10
Shell参数名称后带有井号和百分号的语法
请解释以下语法: i##*. i%.*我了解它在做什么,但是我想知道一般模式(为什么/如何做)。出现的代码:#!/bin/bashrecursive_name_change(){ cd "$1" for i in * do #echo "${i##*.}" if [ -d "$i" ] then recursive_name_change "$i" elif [ "${i##*.}" = "cpp" ] ...
2024-01-10
需要shell脚本语法帮助“for循环和awk”
我正在编写shell脚本来替换数据库中的名称,为此,我有用户列表中的当前名称和新名称在.txt文件中。文件格式是像下面需要shell脚本语法帮助“for循环和awk”**new name current name** abc pqr def stq mnd tdh 对于这个我写个“for循环”使用awk命令,在这里我想它应该给我的$1即abc值,def,mnd等我写下...
2024-01-10
带有进程替换的Shell脚本中的语法错误
我有此Shell脚本,可用于备份系统。有一行:tar -Pzcpf /backups/backup.tar.gz --directory=/ --exclude=proc --exclude=sys --exclude=dev/pts --exclude=backups --exclude=var/log / 2> >(grep -v 'socket ignored' >&2)如您所见,我一直在尝试使用此博客文章通过tar过滤掉烦人的,无用的“套接字忽略”错误。我在执行时从shell中得到的是:/ bi...
2024-01-10
While循环语法说明
在研究XSD验证时通过this进行了读取。遇到这段代码。While循环语法说明private static IEnumerable<ValidationEventArgs> RunValidation(string inputXml, bool includeHelperSchema) { var schemaSet = new XmlSchemaSet(); schemaSet.Add(schemaUnderTest); if (includeHelperSchema) {...
2024-01-10
Jenkinsfile-脚本管道语法中的条件阶段执行
我们正在使用 语法,Jenkinsfile其中定义了很多阶段来构建和部署代码。我们有一个用例,如果我要执行 运行所有阶段,但是如果需要执行一些AWS路由,则只运行一个特定阶段。我知道我可以使用if(<expression>)跳过阶段或运行阶段。问题是我不想将这个if条件应用于我的每个阶段Jenkinsfile。在新的 语法...
2024-01-10
使用Shell脚本获取MAC地址
当前,提到的用于获取MAC地址的所有解决方案始终使用eth0。但是,如果接口不是以eth0开头,该怎么办呢?同样在OS X上,接口名称也不同。eth0接口也可能存在但未使用。即不活跃,它没有一个IP。因此,有没有一种方法可以获取第一个可用接口Active的MAC地址(即,它具有一个inet地址,我什至不希望有...
2024-01-10
如何在启动时运行Shell脚本
在Amazon S3Linux实例上,我有两个名为的脚本start_my_app,stop_my_app它们永远启动和停止(依次运行Node.js应用程序)。我使用这些脚本手动启动和停止我的Node.js应用程序。到目前为止,一切都很好。我的问题:我还想将其设置start_my_app为在系统启动时运行。我知道我需要在其中添加文件,init.d并且知道如...
2024-01-10
解密混淆的Perl脚本
服务器上出现了一些垃圾邮件问题,在找出并删除了一些Perl和PHP脚本后,我决定检查它们的实际作用,尽管我是高级PHP程序员,但对Perl经验很少,有人可以给我一个建议吗?在这里手写脚本:http://pastebin.com/MKiN8ifp(这是一长行代码,脚本称为list.pl)脚本的开始是:$??s:;s:s;;$?::s;(.*); ]="&\%[=.*.,-))'-,-#...
2024-01-10
使用Shell脚本从UNIX中的文件名中提取日期
我正在编写shell脚本。我想从文件名中提取日期。文件名是: abcd_2014-05-20.tar.gz我想从中提取日期: 2014-05-20回答:echo abcd_2014-05-20.tar.gz |grep -Eo '[[:digit:]]{4}-[[:digit:]]{2}-[[:digit:]]{2}'2014-05-20grep以echostdin 输入,或者cat如果文件中包含这些字符串,也可以使用command。-E 将PATTERN解释为扩展的正则表达式...
2024-01-10
解析Shell脚本参数
$myscript.sh -host blah -user blah -pass blah我想将参数传递给它。我已经习惯了这样做$1,$2,$3....但我要开始对其进行命名回答:有很多方法可以解析sh中的参数。Getopt很好。这是一个简单的脚本,可以手动解析内容:#!/bin/sh# WARNING: see discussion and caveats below# this is extremely fragile and insecurewhile echo $1 | grep -...
2024-01-10
使用Shell脚本发送HTML邮件
如何使用Shell脚本发送HTML电子邮件?回答:首先,您需要撰写邮件。最低要求由以下两个标头组成:MIME-Version: 1.0Content-Type: text/html…以及适当的邮件正文:<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head><title></title></head><body><p>Hello, wor...
2024-01-10
如何在Java中保存Shell脚本的回显输出
我正在研究一个Java程序,该程序在JUnit测试中调用多个Shell脚本(因此,除了。和E之外没有输出),这些脚本可操纵文件和SQL表,然后将所述表中的数据与其期望值进行比较。一切都在理论上可行,但是我遇到了一个阶段性错误,其中一种类型的测试按预期工作,而另一种类型的测试在十分钟超时后失...
2024-01-10
如何在Shell脚本中仅读取单个字符
我想要类似getche()C的选项。如何仅从命令行读取单个字符输入?使用read命令可以做到吗?回答:在ksh中,您基本上可以执行以下操作:stty rawREPLY=$(dd bs=1 count=1 2> /dev/null)stty -raw...
2024-01-10
从shell中使用Perl自定义脚本
我想将一个变量传递给自定义Perl脚本。从shell中使用Perl自定义脚本 $file="my_wa/fin" if [[ "$file" == *"fin" ]]; then script.pl fi 在我的剧本我尝试使用$file我的路径打开和读取文件my $input_filename = "$ENV{file}"; 我明白,我需要以某种方式将其导出,并接受它在我的Perl代码, 但它不承认$file。 - 如果...
2024-01-10
Shell脚本-将xml拆分为多个文件
我正在尝试将一个大型xml文件拆分为多个文件,并在AWK脚本中使用了以下代码。/<fileItem>/ { rfile="fileItem" count ".xml" print "<?xml version=\"1.0\" encoding=\"UTF-8\"?>" > rfile print $0 > rfile getline while ($0 !~ "<\/fileItem>" ) { print ...
2024-01-10
在shell中获取程序执行时间
我想在几种不同条件下在linux shell中执行某些操作,并能够输出每次执行的执行时间。我知道我可以编写一个可以执行此操作的perl或python脚本,但是有什么方法可以在shell中执行它吗?(碰巧是bash)回答:使用内置time关键字:$帮助时间时间:时间[-p]管道 执行PIPELINE并打印实时,用户CPU时间, ...
2024-01-10
确定Shell程序中的相对路径还是绝对路径
如标题中所述,我需要确定路径是相对路径还是绝对路径,何时运行程序:./program #relativedir/dir2/program #relative~User/dir/dir2/program #absolute/home/User/dir/dir2/program #absolute这是我的测试用例。我到底该如何在Shell程序中执行此操作?或更笼统地说,$0在这种情况下,如何检查路径是相对的还是绝对的?回答...
2024-01-10
