草庐IT

BASH_SOURCE

全部标签

linux - Bash 别名在文件名中创建具有当前时间戳的文件

我正在尝试创建一个bash别名,它会在每次调用别名时打印当前的UNIX时间戳。我的bash配置文件中有以下内容:aliasunix="echo"$(date+%s)""但是,似乎当前的unix时间戳是在获取bash配置文件后立即存储的,并且每次调用别名时都不会更改。例如,如果我每隔10秒调用unix别名三次,输出总是相同的。我如何创建一个别名来评估调用别名时的unix时间戳。这可能吗? 最佳答案 使用单引号防止立即展开。aliasunix='echo$(date+%s)'更新:虽然我很高兴能够解释单引号和双引号之间的不同扩展行为,但

linux - Bash脚本为所有文件添加一个随机数

我有一部似乎没有音乐随机播放功能的“智能”手机,所以下一个最好的办法是编写一个bash脚本,为当前目录中的所有文件名添加一个随机数。这很难做到吗? 最佳答案 不,这并不难做到。但是,它会弄乱您精心制作的文件名,并且可能难以撤消。您可以使用$RANDOM作为bash中随机数的简单来源。为您案例:#!/bin/bashforfilein*;domv"$file"$RANDOM-"$file"done我没有测试这个。你可能想在一些小的示例以确保您知道它的作用。 关于linux-Bash脚本为所

linux - Bash: '$(( ))' 表示 'expr' 和 '[ ]' 表示 'test'?

我最近一直在使用一些bash脚本,并且一直在浏览手册页。根据我收集到的信息,$(())是否表示expr而[]是否表示test?对于$(()):echo$((5+3))具有相同的输出:echo$(expr5+3)对于[]:test'str'='str'具有相同的成功值:['str'='str']我的理解正确吗? 最佳答案 ((...))结构等同于bash内置的let。let做的事情与expr做的基本相同。$((...))构造,注意开头的$,会像$(...)确实如此。[...]构造实际上只是test的另一个名称。有关更多信息,请参阅ba

linux - 在 linux/bash 中创建无限循环的重复文件 cat

我想做的是“重复”发送一个文件(就像无限次地搜索它一样)作为另一个程序的输入。有没有办法在命令行/使用bash? 最佳答案 yescommand,使用文件的内容作为参数:yes"$( 关于linux-在linux/bash中创建无限循环的重复文件cat,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/34555248/

linux - 如何在 linux 中使用 bash 查找所有 .sh 文件并使它们可执行?

同样,当我启动时,我想在找到这些.sh文件时将路径传递给文件夹我从这个开始#!/bin/bashfind/home/user_name-name"*.sh"并且在脚本必须将可执行文件写入Logo列表之后 最佳答案 就安全性和奇怪的文件名(空格、奇怪的字符等)而言,最安全的方法是直接使用find:find/home/user-name"*.sh"-execdirchmodu+x{}+您可以查看注释和手册以了解为什么这是安全的,但简而言之,它确保您的文件在chmod命令中被正确引用。execdir(而不是-exec)是一项额外的安全功能

linux - 如何使用 Bash 解析 HTTP header ?

我需要从使用curl获取的网页标题中获取2个值。我已经能够使用以下方法单独获取值:response1=$(curl-I-shttp://www.example.com|grepHTTP/1.1|awk{'print$2'})response2=$(curl-I-shttp://www.example.com|grepServer:|awk{'print$2'})但我不知道如何使用单个curl请求分别grep值,例如:response=$(curl-I-shttp://www.example.com)http_status=$response|grepHTTP/1.1|awk{'prin

linux - curl 命令不通过 bash 中的 shell 脚本执行

我正在学习shell脚本!同样,我尝试在ubuntu终端上使用curl下载facebook页面。t.sh内容vi@vi-Dell-7537(Desktop)$catt.shcurlCmd="curl\"https://www.facebook.com/vivekkumar27june88\""echo$curlCmd($curlCmd)>~/Desktop/fb.html运行脚本时出错vi@vi-Dell-7537(Desktop)$./t.shcurl"https://www.facebook.com/vivekkumar27june88"curl:(1)Protocol"https

linux - Bash 脚本 : always show menu after loop execution

我正在使用这样的bash脚本菜单:#!/bin/bashPS3='Pleaseenteryourchoice:'options=("Option1""Option2""Option3""Quit")selectoptin"${options[@]}"docase$optin"Option1")echo"youchosechoice1";;"Option2")echo"youchosechoice2";;"Option3")echo"youchosechoice3";;"Quit")break;;*)echoinvalidoption;;esacdone每次选择菜单后我都会得到提示Ple

linux - 在 bash 脚本中,$'\0' 的计算结果是什么?为什么?

在各种bash脚本中,我遇到了以下内容:$'\0'一个带有一些上下文的例子:whileread-r-d$'\0'line;doecho"${line}"done$'\0'的返回值是什么?或者,换句话说,$'\0'的计算结果是什么?为什么?这可能已经在其他地方得到了回答。我在发布之前进行了搜索,但是美元引号-斜杠-零引号中的字符数或有意义的单词数量有限,因此很难从stackoverflow搜索或谷歌中获得结果。所以,如果还有其他重复的问题,请允许一些宽限期并将它们与这个问题联系起来。 最佳答案 在bash中,$'\0'与''完全相同:

linux - 奇怪的返回值 "134"在 Bash 脚本中调用 Gawk

我在使用Gawk时遇到了一个非常非常奇怪的问题在Bash脚本中。在这个脚本中,我使用一个函数来进行一些文本处理。即使是非常简单的Gawk命令也会返回错误134。#!/bin/bashtestFunc(){log"Beforegawk:$?"gawk'{print}'filelog"Aftergawk:$?"}如果我在控制台中手动运行此脚本,它将完美运行。$?将始终为0,这意味着成功,但是如果我在etc/rc.d/中将此脚本用作第3级的Linux启动脚本,则在执行Gawk之后,$?总是134。134是什么意思?如果我将gawk'{print}'file替换为gawk--version,结