Articles of bash

检查在bash脚本中至less有两个参数

我正在尝试编写一个模仿cp的脚本,其中有源和目标input。 我如何计算在命令行上给出的参数数目 例如 ./myscript src dest 检查至less有2件事情被给出。

使用? 与sed

我只是想得到一个文件的数量,可以或不可以gzip'd。 然而,似乎sed中的正则expression式不支持? 。 这是我的尝试: echo 'file_1.gz'|sed -n 's/.*_\(.*\)\(\.gz\)?/\1/p' 并没有返回。 那我加了一个? 到被分析的string: echo 'file_1.gz?'|sed -n 's/.*_\(.*\)\(\.gz\)?/\1/p' 并得到: 1 那么,它看起来像? 在大多数正则expression式中使用不支持在sed,对不对? 那么,我只想sed给1 file_1和file_1.gz 。 如果执行时间很关键,那么在bash脚本中如何做到这一点呢?

使用SFTP将图像从HTML表单传输到使用PERL / CGI.pm的远程Linux服务器

这是一个学校项目,导师不知道如何编写代码。 我正在使用CGI ,我试图传输一个文件而不使用Net::FTP或Net::SFTP因为我试图将其传输到的服务器将不允许来自这些服务的连接。 我已经写了HTML表单,并且能够获取通过CGI上传的文件的名称。 是否有可能在驻留在Linux服务器上的Perl脚本中使用SFTP命令使用bash传输通过HTML表单上传的文件? 如果有人知道这样做的方式,请张贴代码,以便我可以修改它,并插入到我的脚本。

计算Bash中的平均值

问题陈述 给定N个整数,计算其平均值,修正到小数点后三位。 input格式第一行包含一个整数N.然后是N个整数,每个整数换行。 输出格式显示N个整数的平均值,四舍五入至小数点后三位。 input约束 1 <= N <= 500 -10000 <= x <= 10000 (x refers to elements of the list of integers for which the average is to be computed) 示例input 4 1 2 9 8 示例输出 5.000 交代 第一行中的“4”表示有四个整数的平均值将被计算。 平均值=(1 + 2 + 9 + 8)/ 4 = 20/4 = 5.000(正确到小数点后三位)即使是多余的,也请包括零(例如0.000而不是0)。

Bash:将键值行转换为CSV格式

编者按:我已经澄清了问题的定义,因为我觉得这个问题很有意思,这个问题值得重新打开。 我有一个文本文件,其中包含以下格式的键值行 – 请注意,下面的#行仅用于显示重复块,不是input的一部分 : Country:United Kingdom Language:English Capital city:London # Country:France Language:French Capital city:Paris # Country:Germany Language:German Capital city:Berlin # Country:Italy Language:Italian Capital city:Rome # Country:Russia Language:Russian Capital city:Moscow 使用shell命令和实用程序,我怎样才能将这样的文件转换为CSV格式,所以它看起来像这样? Country,Language,Capital city United Kingdom,English,London France,French,Paris Germany,German,Berlin Italy,Italian,Rome Russia,Russian,Moscow 换一种说法: 将键名称设置为CSV标题行的列名称。 使每个块的值分别为数据行。 编辑:我的想法是将条目分开,例如:国家:法国将成为国家法国,然后grep / sed标题。 但是,我不知道如何将标题从一个列移动到几个单独的列。

可能“循环”和“输出”不能在我的bash脚本中正常工作

我写了下面的脚本: #!/bin/bash echo "Reading data – headers – both" if [ $# -ne 3 ]; then echo "Usage: ./nmap <port-range> <ip-list> <d || h || b>" exit 1 fi rm -f /tmp/right.txt 1>/dev/null 2>/dev/null rm -f /tmp/wrong.txt 1>/dev/null 2>/dev/null output="" if [ $3 == h ]; then while read -r -u3 port; do while read […]

Linux的bash脚本循环

我有1.txt 2.txt和script.php 1.txt: a b c d 2.txt www rrr ttt yyy 我希望bash文件在Linux下执行这个命令: ./script.php -na -j www>>n_j.txt ./script.php -na -j rrr>>n_j.txt ./script.php -na -j ttt>>n_j.txt ./script.php -na -j yyy>>n_j.txt ./script.php -nb -j www>>n_j.txt ./script.php -nb -j rrr>>n_j.txt ./script.php -nb -j ttt>>n_j.txt . . 我有一个蝙蝠代码与wondows cmd工作..我想要一个代码,它可以使用Linux命令行 @ECHO OFF FOR /F "tokens=1 delims= " %%I IN (1.txt) […]

Linux将文件重命名为dirname

我有很多像这样的文件: ./1/wwuhw.mp3 ./2/nweiewe.mp3 ./3/iwqjoiw.mp3 ./4/ncionw.MP3 ./5/joiwqfm.wmv ./6/jqoifiew.WMV 我怎么能在Linux Bash中像这样重命名它们: ./1/1.mp3 ./2/2.mp3 ./3/3.mp3 ./4/4.MP3 ./5/5.wmv ./6/6.WMV

将两个或更多STDOUTredirect到一个STDIN

我想将两个程序的输出redirect到单个STDINpipe道,可能是以最有效的方式。 那可能吗?

转义bashvariables

我有点卡住了。 我在脚本的顶部拖放了一个variables,然后我创build了一个文件作为脚本的一部分: app="testing" cat <<EOF >/etc/init.d/test #!/bin/bash args="–emperor $APPCONF/test/$APP.ini" EOF 它似乎没有工作,但似乎在$应用程序variables。 我必须对这个variables做些什么来显示它的值,在我创build的文件里面“testing”?