
“参数列表太长”限制是否适用于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脚本中,美元符号后跟at符号()是什么意思?例如:umbrella_corp_options $@回答:$@是传递给脚本的 参数。举例来说,如果你打电话./someScript.sh foo bar,然后$@将等于foo bar。如果您这样做:./someScript.sh foo bar然后里面someScript.sh引用:umbrella_corp_options "$@"该参数将传递给umbrella_corp_options每个...
2024-01-10
!的含义是什么!在Shell中执行命令之前?
问题在标题中。以感叹号开头的shell命令(shell脚本的一部分)的目的是什么?具体示例:#!/usr/bin/env bashset -e! docker stop foo! docker rm -f foo# ... other stuff我知道没有空格,感叹号用于替换历史记录,并且!<expression>根据手册页可用于评估“expr为false时为True ”。但是在示例上下文中,这对我来说没有意...
2024-01-10
使用system()执行shell脚本返回256。这是什么意思?
我已经编写了一个Shell脚本来软重启HAProxy(反向代理)。从外壳执行脚本。但是我想要一个守护程序来执行脚本。那不行system()返回256。我不知道这可能意味着什么。#!/bin/sh# save previous statemv /home/haproxy/haproxy.cfg /home/haproxy/haproxy.cfg.oldmv /var/run/haproxy.pid /var/run/haproxy.pid.oldcp /tmp/haproxy.cfg.new /home/ha...
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形式和exec形式?
什么是命令的shell形式和exec形式?我仔细阅读了几份文档,以明确了解shell形式和exec形式。但是所有人都对我感到困惑。任何人都可以帮助找出这两种形式之间的区别吗? :尽管我在查阅docker文件Instructions(ex: RUN, CMD,ENTRYPOINT)时遇到了这些术语,但我想总体上了解它们之间的区别,而不是在Docker...
2024-01-10
Shell脚本中的“ -le”是什么?
我正在看这段代码。我想知道-le以下代码段的含义。if [ $stage -le 2 ]; then在一个问题中,它说-le代表<=字符串,但这是在Perl中。这里也一样吗?此外,我想知道该$stage变量是否自动更新。它已被初始化为0开始时,但后来如何递增?回答:-le检查左操作数的值是否小于或等于(<=)右操作数的值,如...
2024-01-10
如何从PHP检查shell命令是否存在
我需要这样的东西在PHP:If (!command_exists('makemiracle')) { print 'no miracles'; return FALSE;}else { // safely call the command knowing that it exists in the host system shell_exec('makemiracle');}有什么解决办法吗?回答:在Linux / Mac OS上,请尝试以下操作:function command_exist($cm...
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中获取文件大小(以字节为单位)的可移植方式?
在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字符串中的单词列表?
我有一个字符串中的单词列表: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参数名称后带有井号和百分号的语法
请解释以下语法: 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
