【Linux-在gnome-terminal -x中运行bash函数】教程文章相关的互联网学习教程文章

linux-检查bash脚本中是否有标准输出重定向【代码】

我需要检查程序的输出是否被重定向;如果是,我需要保留并通过邮件发送. 例:$myprogram -param1 -param2 -param3 > /home/polly/log.txtmyprogram.sh:if 'redirection is not empty'; then cat <redirection name> | mailx -s "This is a test email." polly@gmail.com fi 解决方法:您可以检查stdout是否为终端.当stdout重定向或通过管道传输时,它将不是终端.您可以将test命令与-t选项一起使用以获取以下信息:if [ -t 1 ] ; the...

如何在Linux bash shell中转义bang(!)字符?【代码】

我无法为自己的一生找出解决方法! Bash中的角色.例如,我要打印此:Text text text!我已经试过了:echo "Text text text\!"而是打印此:Text text text\!(带有一个额外的反斜杠). 我怎样才能做到这一点?解决方法:尝试这个:echo 'Text text text!'要么echo "Text text text"'!'要么echo -e "Text text text\x21"

linux-安全记住bash脚本中的ssh凭证【代码】

这个问题已经在这里有了答案: > Setup and use SSH ControlMaster Session in a Shell Script 1个想象一下,我有一个bash脚本,它通过ssh在远程计算机上执行命令:# Do something here ssh otheruser@host command1 # Do something else ssh otheruser@host command2 # Do most local tasks该脚本提示我多次输入otheruser @ host的凭据.有没有一种安全,简便且可以接受的方...

linux-当bash称为sh时,为什么bash的行为有所不同?【代码】

我有一台ubuntu机器,其默认shell设置为bash,并且两种方式都设置为$PATH中的二进制文件:$which bash /bin/bash $which sh /bin/sh $ll /bin/sh lrwxrwxrwx 1 root root 4 Mar 6 2013 /bin/sh -> bash*但是,当我尝试调用使用the inline file descriptor的脚本(只有bash可以处理,但sh不能处理)时,两个调用的行为不同:$. ./inline-pipe reached $bash ./inline-pipe reached $sh ./inline-pipe ./inline-pipe: line 6: syntax erro...

linux-bash脚本根据修改后的文件日期删除目录【代码】

我正在寻找创建一个bash脚本,该脚本以递归方式遍历目录,并从树的最末端开始按日期检查文件.如果最新文件的日期超过90天,请转到一个目录并检查相同的内容.如果没有超过90天的文件,请删除根目录. 例如:/ftpdir/Site1/folder1/folder2如果文件夹2没有较新的文件,但是文件夹1有,则删除文件夹1,但保留Site1 我已经在AutoIT中编写了此代码,但现在需要将其作为bash脚本使用,我有点迷失了. 谢谢 编辑:我以为我很清楚,但让我澄清一些事情:...

Bash / Linux使用自定义字段分隔符按第三列排序【代码】

我似乎无法根据需要对以下数据进行排序;find output/ -type f -name *.raw | sort output/rtp.0.0.raw output/rtp.0.10.raw output/rtp.0.11.raw output/rtp.0.12.raw output/rtp.0.13.raw output/rtp.0.14.raw output/rtp.0.15.raw output/rtp.0.16.raw output/rtp.0.17.raw output/rtp.0.18.raw output/rtp.0.19.raw output/rtp.0.1.raw output/rtp.0.20.raw output/rtp.0.2.raw output/rtp.0.3.raw output/rtp.0.4.raw output...

linux-grep在bash脚本中失败,但可在命令行中使用【代码】

bash文件:#!/bin/bash grep -l -r "products" Products/提供输出: No such file or directory当直接从终端提示符运行时,grep -l -r“ products” Products /提供所需的输出,这是包含单词的文件的列表. 我使用echo $SHELL检查该外壳确实是bash,因此应该没有区别.可能是什么原因? (Products /目录包含大约3500个文件). 在Ubuntu 12.04 LTS上运行.解决方法:您的脚本在grep行的末尾包含一个CR.使用dos2unix将其删除.

linux-如何使用文件路径自动完成bash命令行?【代码】

上下文 我正在创建一个外壳程序,它是一个命令行工具.我想为此工具创建自己的自动完成功能. 我想做两种不同的事情(也许我应该发布两个问题): >对于–install和-i选项,我想像ls命令一样自动完成文件路径.>对于–unit-test和-t选项,我想在可以运行my_app –directory的特定目录中自动完成文件路径. my_app_autocomplete文件__my_app_autocomplete() {local cur prev optsCOMPREPLY=()cur="${COMP_WORDS[COMP_CWORD]}"prev="${COMP_WO...

linux – 如何在bash中进行基本数学运算?【代码】

我做了一些我认为应该是一个名为bashispainful.sh的shell脚本: 码:#!/bin/bash Var1= $((10*5)) Var2= $((10/5)) Var3= $((10-5)) Var4= $((10+5)) Var5= ($(Var4)*$(Var3)) echo $Var1 echo $Var2 echo $Var3 echo $Var4 echo $Var5我想收到输出:50 2 5 15 75我目前的输出:./Bashispainful.sh: line 2: 50: command not found ./Bashispainful.sh: line 3: 2: command not found ./Bashispainful.sh: line 4: 5: command not ...

linux – 使用Bash检查进程是否正在运行【代码】

我正在尝试使用以下代码检查进程是否正在运行:SERVICE="./yowsup/yowsup-cli" RESULT=`ps aux | grep $SERVICE`if [ "${RESULT:-null}" = null ]; thenecho "not running" elseecho "running" fi但它仍然在回应它正在运行,虽然它不是.我意识到grep本身就是结果,这就是问题所在. 如何跳过grep并检查进程?解决方法:使用pgrep:if pgrep "$SERVICE" >/dev/null 2>&1 ; thenecho "$SERVICE is running" fi或者,更可靠:if pgrep -f "...

linux – bash案例:“第4行:意外令牌附近的语法错误”)’“【代码】

bash案例:line 4: syntax error near unexpected token `)’我正在尝试在Bash中使用命令案例(再次在我的Raspberry Pi上),但是当我运行我的脚本时,Bash会发出错误.我已经阅读了很多教程,我认为我做的与他们一样,但有些事情是不对的. 这是我的代码:#!/bin/bash case "$1" inhelp) echo "You asked for help. Sorry, I'm busy."*) echo "You didn't say anything. Try 'help' as the first argument." esac这是输出(文件名是newmkdi...

linux – bash:/ bin / myscript:权限被拒绝【代码】

我在linux mint 15中添加了我的文件夹的路径到bashrc.其中包含我的脚本.据我所知,我的脚本应该像bash脚本一样工作.但每次我尝试使用我的一个脚本时出现以下错误:bash:/ bin / myscript:权限被拒绝 这是出口线:export PATH=$PATH:/home/peter/myscripts/我以root身份登录.解决方法:您可能忘记了为脚本执行权限:chmod a+x /path/to/the/script

linux – 比较文件的日期bash【代码】

我正在研究一个类似Dropbox的小型bash脚本,如何在不使用rsync的情况下比较2个文件的日期并用新文件替换旧文件的日期有没有简单的方法来处理这个?SHA1可以帮助我了解更新的吗?解决方法:您可以使用-nt(比new更新)和-ot(早于)运算符将文件修改时间与test进行比较:if [ "$file1" -ot "$file2" ]; thencp -f "$file2" "$file1" fi

linux – 将关联数组作为参数传递给Bash【代码】

参见英文答案 > How to pass an associative array as argument to a function in Bash? 8个将关联数组作为参数传递给函数以避免重复必须迭代多个关联数组的最佳方法是什么?这样我可以给函数任意打印的数组.这就是我所拥有的:# Snippetdeclare -A weapons=(['Straight Sword']=75['Tainted Dagger']=54['Imperial Sword']=90['Edged Shuriken']=25 )print_weapons() {for i in "${!weapons[@...

linux – 使用bash按第5列排序csv文件【代码】

该文件看起来像5.1,3.5,1.4,0.2,Banana 4.9,3.0,1.4,0.6,Apple 4.8,2.8,1.3,1.2,Apple我需要拥有它4.9,3.0,1.4,0.2,Apple 4.8,2.8,1.3,1.2,Apple 5.1,3.5,1.4,0.2,Banana我一直在尝试使用sort -t, -k5 file.csv > sorted.csv它所做的一切就是成功5.1,3.5,1.4,0.2,Banana 4.8,2.8,1.3,1.2,Apple 4.9,3.0,1.4,0.6,Apple我怎么做到这样?它似乎根本没有排序.解决方法:这就是你需要的东西# sort -t . -nrk2 sorted.csv 4.9,3.0,1.4,0....