Articles of bash

自停尾部操作

我需要一些帮助以下内容: 在一个菜单中,尾部操作将被执行,然后在某个输出结束后尾部将被终止,我们将返回到菜单。 tail -f server.log | grep "Started successfully with " && echo "it is working" || echo "not working" 任何人都可以帮助我有一个自闭尾巴命令?

在gnome-terminal -x中运行一个bash函数

我有一个bash函数,我想使用gnometerminal在新窗口中执行该函数。 我该怎么做? 我想在blah.sh脚本中做这样的事情: my_func() { // Do cool stuff } gnome-terminal -x my_func 我现在正在做的是把my_func()放到一个脚本中,然后调用gnome-terminal -x ./my_func

Shell脚本 – SFTP – >如果复制,删除?

Iam试图通过sftp复制与shellcript的文本文件。 我已经写了一个脚本来完成这项工作。 #!/bin/bash HOST='Servername' USER='Username' sftp -b – ${USER}@${HOST} << EOFFTP get /files/*.txt /tmp/ftpfiles/ rm /files/*.txt quit EOFFTP 在删除FTP上的所有文本文件之前,我想确保,我复制了所有文件,没有错误。 我怎样才能做到这一点? 我使用SSH密钥login。 任务是:一遍又一遍地复制所有的文本文件,但要确保它不是一样的…(这就是为什么我使用删除…) 也许我可以将它们移动到FTP上? 像复制,然后移动到/文件/复制?

如果两台机器中的文件都是错误的,如何退出shell脚本?

我在machineA上运行我的shell脚本,它将machineB和machineC的文件复制到machineA 。 如果该文件不在machineB ,那么它肯定应该在machineC中。 所以我会尝试从machineB首先复制,如果它不在machineB那么我将去machineC复制相同的文件。 下面是我用来复制文件的shell脚本, PRIMARY_PARTITION是一个包含所有文件编号的数组 – for el in "${PRIMARY_PARTITION[@]}" do scp -o ControlMaster=auto -o 'ControlPath=~/.ssh/control-%r@%h:%p' -o ControlPersist=900 david@machineB:/te/data/te_snapshot/20140411/t1_weekly_1680_"$el"_200003_5.data /data01/primary/. || scp -o ControlMaster=auto -o 'ControlPath=~/.ssh/control-%r@%h:%p' -o ControlPersist=900 david@machineC:/te/data/te_snapshot/20140411/t1_weekly_1680_"$el"_200003_5.data /data01/primary/. done 现在的问题是 – 可能有一些情况下,在这两个机器中没有文件 – machineB和machineC然后我想退出shell脚本非零状态和适当的消息与哪个文件丢失 – 所以我喜欢这个,我在最后加了一个pipe道声明,但不知怎的,这个消息没有被打印出来。 而且我非常确定那些试图复制的文件不在这两个机器的文件夹中 – scp -o ControlMaster=auto -o 'ControlPath=~/.ssh/control-%r@%h:%p' -o ControlPersist=900 david@machineB:/te/data/te_snapshot/20140411/t1_weekly_1680_"$el"_200003_5.data /data01/primary/. || scp -o ControlMaster=auto […]

在sed中,如何表示“字母数字或_或 – ”

试着 [a-zA-Z0-9-_] [a-zA-Z0-0\-\_] [[[:alnum:]]-_] … 在正则expression式中用正确的方式来expression 似乎[a-zA-Z0-9-]适用于字母数字或破折号。 但是,当我添加另一个下划线,它打破。

Bash子菜单(selectjoin)

我正在试图通过selectselect进入一个完整的BASH菜单子菜单 。 问题:当我去一个子菜单,然后回到初始菜单,它不显示选项。 ———————————————- Greenwatch's Kiosk debug menu ———————————————- 1) Keyboard Layout, 5) Configure Kiosk's password, 2) Timezone configuration, 6) Set Proxy, 3) -, 7) Remove Proxy 4) Launch Kiosk anyway, Enter your choice (mainmenu), press 0 to reboot: 1 1) Azerty layout (BE) 2) Querty layout (US) 3) Cancel Enter your choice (submenu): 1 […]

只计算目录中的可见文件

我在我的目录中隐藏的文件有问题。 如果我使用$(find . -type f | wc -l)它会显示8个文件,也会对隐藏文件进行计数,应该只有7个文件。 有什么可以计算只有可见的文件?

在当前目录中打开最后一个目录的别名

我想创build别名打开当前目录中的最后一个目录,也许我认为可以使用这个命令获取目录的名称:ls -lt | 头-1但我不说使用它。 用函数或别名解决:alias oo ='cd $(ls -lt | head-1)'

如何在Bash C源代码中实现Tab完成

作为Linux的初学者,我正在研究Bash的来源,对Tab完成很感兴趣。 在我看来,Tab完成有两种可能的实现。 Bash从TTY中获取char'\ t',并调用相应的完成函数来根据你input的字符做一些事情。 Tab键击发一个信号(事件?)来打击。 然后bash处理这个信号并callback到完成处理程序。 我做了一些search,并从Bash源查找相关的代码http://sources.debian.net/src/bash/4.3-7 ,但我找不到任何代码处理Tab信号或从TTY获得char'\ t'相关的代码。 任何人都知道Tab完成的机制,并可以指出相关代码的位置? 谢谢。

“制作”子目录的首选方法

标准是什么? 在这种情况下,我们应该使用以下? $(MAKE) -C subdir cd subdir && $(MAKE) cd subdir ; $(MAKE) 什么时候做干净?