bash相关内容
在终端中给定的超长命令行上移动的最佳方式是什么? 假设我使用箭头键或Ctrl-R来获取此长命令行: ./cmd --option1 --option2 --option3 --option4 --option5 --option6 --option7 --option8 --option9 --option10 --option11 --option12 --option13 --opti
..
我在我的脚本中使用了一个在控制台上打印消息的函数。它可以从任何其他函数调用。 function print_message { echo "message content" } 在外壳程序中,像echo或printf这样的函数通常在标准输出上打印数据,它们将消息重定向到调用函数,而不是作为返回值。 return_value=$(print_message) # this l
..
我在bash中有一个包含多行字符串的变量: mystring="foo bar stack overflow" 很明显,当Iecho "$mystring"时,这会产生大量的缩进。在Python中,我只需导入textwrap并在字符串上使用deden,这就将我带到了这里。有没有为bash而存在的类似于python的dedent模
..
我想使用grep来精确匹配";er";,但是grep-w除了精确匹配之外,还在带有非拉丁字母的单词中找到了部分匹配,例如";ü";。下面的命令在";groüer";和";weier";中找到";er";。预期的行为是,grep仅在下面的字符串中找到&er";的完全匹配项,而没有部分匹配项。 echo "g
..
我有第行的文件: "H:CheckWP_20140511_029.mp4" 以及其他行。我想删除指示H:Check处的目录的行。我试过了 grep -v ".*H:\Check.*" testout.txt > testout2.txt 但它没有删除这些行。我的正则表达式.*H:\Check.*有什么问题。 regex101 shows我的正则表达式与该行正确匹配。 推荐
..
我发了下面的代码,被骂了。为什么这是不可接受的? numberOfLines=$(wc -l
..
我的文件夹中有三个.wav文件,我想用ffmpeg将它们转换为.mp3。 我编写了此bash脚本,但当我执行它时,只有第一个脚本被转换为mp3。 我应该怎么做才能让脚本继续浏览我的文件? 这是脚本: #!/bin/bash find . -name '*.wav' | while read f; do ffmpeg -i "$f" -ab 320k -ac 2 "$
..
我正在尝试将从日志文件的各行输入的日期与昨天的日期进行比较,如果差异超过一天,则打印日志文件中的该行。 日志文件: $more ActiveX2Alarms.log 2016-09-30 01:40:14 MET;faultManager:network@ET_AO_L_0165_abcde@eNBEquip@eNBInst@x2Grp-0@x2Access-0_424_02_ET_A
..
我正在执行一个MySQL数据库备份脚本,我希望它通过电子邮件向我报告。 到目前为止,我能够做到有一个主体和一个没有依恋的身体。代码: cat
..
我正在尝试让家庭网络上的系统通过电子邮件发送图像(.png)。我得到的最接近的是: uuencode -m snapshot.png snapshot.png | mailx -r "sending@myremoteserver.net" -s "Snapshot" -S smtp=smtp.myremoteserver.net me@myremoteserver.net 它将邮件发送给
..
我正在运行一个进程,在该进程运行期间,我需要从守护进程捕获日志。我已经拼凑出了一个解决方案,但我希望有人能给我一个稍微优雅一点的方法。让我恼火的是,因为我使用set -e来提醒我任何问题,所以kill会从tail生成一个错误,我必须用|| :吃这个错误,这对我来说是一个丑陋的黑客攻击。 #!/bin/bash set -e LOGDIR="/path/to/logs" LOCKFILE="/
..
我正尝试在Windows 10上使用bash,但在尝试运行bash时收到以下消息: Windows Subsystem for Linux未安装任何分发版本。 可以通过访问Windows应用商店来安装发行版: https://aka.ms/wslstore按任意键继续... 当我转到打开Windows应用商店应用程序的URL时,那里没有任何Linux分发的迹象。 我的Window
..
我有一个node.js脚本,它使用ChildProcess.exec调用npm adduser。通常,如果我在控制台中键入npm adduser,我会得到: 用户名:[标准提示] 密码:[标准提示] 等 如果我使用node.js来执行此代码,则不会打印出任何内容,而只是停留在一个空提示符处,这将一直持续下去,直到我按ctrl-C键退出它。 如何获得常见行为?我基本上只
..
我在bash中有一个动态生成的索引数组,我想知道它是稀疏还是密集。 一个数组是稀疏的当且仅当在最后一个条目之前有未设置的索引。否则,数组是密集的。 检查在任何情况下都应该有效,即使是空数组、非常大的数组(展开时超过ARG_MAX),当然还有具有任意条目的数组(例如,NULL条目或包含*、、空格和换行符的条目)。后者应该相当容易,因为您可能无论如何都不想展开数组的值。 理想情况下,支票应该
..
尝试找出JQ的语法。 这一行工作得非常好: echo $(cat ../post-auth/rkt-auth.json | jq -c --arg user ${vsphere_user} '.credentials.user = $user') > ../post-auth/rkt-auth.json 但是,当变量是json路径的一部分时,情况并非如此: echo $(cat .
..
使用Linux命令sort,如何对文本文件中的行进行排序? Normalsort交换行直到它们被排序,而我想交换行中的单词直到它们被排序。 示例: Input.txt z y x v t c b a Output.txt t v x y z a b c 推荐答案 如果您有gnu awk,则可以使用asort function在一个命令中完成: aw
..
在Shebang行上传递给脚本的标志与使用set内置标志的行为是否存在差异? 例如: #!/bin/bash -e # do stuff 与 #!/bin/bash set -e # do stuff (问题不是针对-e标志,而是针对任何此类标志)。 显然,set [flags]仅从其设置的点起有效。但在功能/行为方面是否还有其他区别? POSIX外壳中的行为也
..
我正在尝试通过命令行获取一些有关GIT提交的信息,这是我正在构建的一个更大的自动化工具的一部分。我需要的信息可以通过以下git日志命令获得: git log --branches --graph --oneline --parents 哪一项会产生此输出: 这很好,因为它有我想要的散列和标记,以及提交消息。然而,当我通过管道将其发送到文件中时,括号中的内容似乎不知何故丢失了。我对颜
..
我正在尝试使Bash脚本严格符合POSIX,即使用checkbashisms -px ${script_filename}删除任何可能的“Bashisms”。在给定的文件中,我使用find遍历目录,然后使用 作为分隔符使用-print0将每个文件路径通过管道传输到read,以便能够处理包含换行符的文件名: find . -print0 | while read -d $' ' inpath
..
我正在尝试编写一个Bash脚本,该脚本在case语句中使用变量作为模式。但是,我就是不能让它工作。 案例语句: case "$1" in $test) echo "matched" ;; *) echo "didn't match" ;; esac 我尝试过将$test赋值为aaa|bbb|ccc、(a
..