Linux 将Perl脚本转换为Bash

Linux 将Perl脚本转换为Bash,linux,perl,bash,wget,tar,Linux,Perl,Bash,Wget,Tar,下面我有一个Perl脚本,我想将其转换为Bash脚本,但遗憾的是我在Bash中遇到了困难。谁能帮我这个忙吗 #!/usr/bin/perl use strict; use warnings; my $output = `df -h`; my $bundle = "`awk -F \'=\' \'{print \$2}\' config.txt`"; my $bundlename = `echo $bundle | awk -F \'/\' \'{print \$11}\'`; print

下面我有一个Perl脚本,我想将其转换为Bash脚本,但遗憾的是我在Bash中遇到了困难。谁能帮我这个忙吗

#!/usr/bin/perl

use strict;
use warnings;


my $output = `df -h`;
my $bundle = "`awk -F \'=\' \'{print \$2}\' config.txt`";
my $bundlename = `echo $bundle | awk -F \'/\' \'{print \$11}\'`;
print $output;

system ("wget $bundle");
print "$bundlename\n";
tar();


sub tar {
    my $cd = system ("tar -xzvf $bundlename") ;
    system ("rm -vf $bundlename");
}
有人能把它转换成Bash脚本吗?

#/垃圾箱/垃圾箱
bundle=$(awk'$0=$2'FS==config.txt)
bundlename=$(awk'$0=$11'FS=/
#!/bin/sh)
bundle=$(awk'$0=$2'FS==config.txt)
bundlename=$(awk'$0=$11'FS=/
#!/bin/sh)
bundle=$(awk'$0=$2'FS==config.txt)
bundlename=$(awk'$0=$11'FS=/
#!/bin/sh)
bundle=$(awk'$0=$2'FS==config.txt)

bundlename=$(awk'$0=$11'FS=/这是Perl的一个非常直接的直接音译:

#!/bin/bash

output=$(df -h)
bundle=$(awk -F = '{print $2}' config.txt)
bundlename=$(echo $bundle | awk -F / '{print $11}')  # Possible echo "$bundle" instead?
echo "$output"

wget $bundle
echo "$bundlename"
tar -xzvf "$bundlename"
rm -vf "$bundlename"
考虑到您对
$output
变量所做的操作,您不妨简单地编写:

bundle=$(awk -F = '{print $2}' config.txt)
bundlename=$(echo $bundle | awk -F / '{print $11}')  # Possible echo "$bundle" instead?
df -h

wget $bundle
echo "$bundlename"
tar -xzvf "$bundlename"
rm -vf "$bundlename"

现在还不清楚
df-h
是否为脚本提供了任何好处;您可以简单地删除该行。

这是Perl的一个非常直接的直接音译:

#!/bin/bash

output=$(df -h)
bundle=$(awk -F = '{print $2}' config.txt)
bundlename=$(echo $bundle | awk -F / '{print $11}')  # Possible echo "$bundle" instead?
echo "$output"

wget $bundle
echo "$bundlename"
tar -xzvf "$bundlename"
rm -vf "$bundlename"
考虑到您对
$output
变量所做的操作,您不妨简单地编写:

bundle=$(awk -F = '{print $2}' config.txt)
bundlename=$(echo $bundle | awk -F / '{print $11}')  # Possible echo "$bundle" instead?
df -h

wget $bundle
echo "$bundlename"
tar -xzvf "$bundlename"
rm -vf "$bundlename"

现在还不清楚
df-h
是否为脚本提供了任何好处;您可以简单地删除该行。

这是Perl的一个非常直接的直接音译:

#!/bin/bash

output=$(df -h)
bundle=$(awk -F = '{print $2}' config.txt)
bundlename=$(echo $bundle | awk -F / '{print $11}')  # Possible echo "$bundle" instead?
echo "$output"

wget $bundle
echo "$bundlename"
tar -xzvf "$bundlename"
rm -vf "$bundlename"
考虑到您对
$output
变量所做的操作,您不妨简单地编写:

bundle=$(awk -F = '{print $2}' config.txt)
bundlename=$(echo $bundle | awk -F / '{print $11}')  # Possible echo "$bundle" instead?
df -h

wget $bundle
echo "$bundlename"
tar -xzvf "$bundlename"
rm -vf "$bundlename"

现在还不清楚
df-h
是否为脚本提供了任何好处;您可以简单地删除该行。

这是Perl的一个非常直接的直接音译:

#!/bin/bash

output=$(df -h)
bundle=$(awk -F = '{print $2}' config.txt)
bundlename=$(echo $bundle | awk -F / '{print $11}')  # Possible echo "$bundle" instead?
echo "$output"

wget $bundle
echo "$bundlename"
tar -xzvf "$bundlename"
rm -vf "$bundlename"
考虑到您对
$output
变量所做的操作,您不妨简单地编写:

bundle=$(awk -F = '{print $2}' config.txt)
bundlename=$(echo $bundle | awk -F / '{print $11}')  # Possible echo "$bundle" instead?
df -h

wget $bundle
echo "$bundlename"
tar -xzvf "$bundlename"
rm -vf "$bundlename"


不清楚
df-h
是否为脚本提供了任何好处;您可以简单地删除该行。

欢迎使用Stack Overflow。请向我们展示您的尝试,并询问您的困境。我同意这是一个shell脚本,而不是Perl脚本;它没有使用Perl的distinctive的好处。事实上,它已经由shell在您的perl脚本中编写。您可以自己进行转换。让我们知道您遇到问题的部分。事实上,我已经转换了它,并且在system()端遇到了问题。使用system()的方法是什么在bash中,system语句只是在其参数中执行命令;shell自动执行命令,而不需要使用单词
system
或整个命令的引号。欢迎使用Stack Overflow。请向我们展示您的尝试,并询问您的困境。我同意这是一个shell脚本而不是Perl脚本;它没有利用Perl的独特优势。事实上,它已经由shell在您的Perl脚本中编写。您可以自己进行转换。让我们知道您遇到了问题的部分。实际上,我已经转换了它,并且在system()方面遇到了问题。使用system()的方法是什么在bash中,system语句只是在其参数中执行命令;shell自动执行命令,而不需要使用单词
system
或整个命令的引号。欢迎使用Stack Overflow。请向我们展示您的尝试,并询问您的困境。我同意这是一个shell脚本而不是Perl脚本;它没有利用Perl的独特优势。事实上,它已经由shell在您的Perl脚本中编写。您可以自己进行转换。让我们知道您遇到了问题的部分。实际上,我已经转换了它,并且在system()方面遇到了问题。使用system()的方法是什么在bash中,system语句只是在其参数中执行命令;shell自动执行命令,而不需要使用单词
system
或整个命令的引号。欢迎使用Stack Overflow。请向我们展示您的尝试,并询问您的困境。我同意这是一个shell脚本而不是Perl脚本;它没有利用Perl的独特优势。事实上,它已经由shell在您的Perl脚本中编写。您可以自己进行转换。让我们知道您遇到了问题的部分。实际上,我已经转换了它,并且在system()方面遇到了问题。使用system()的方法是什么在bash?中,系统语句只是在其参数中执行命令;shell自动执行命令,而不需要使用单词
system
或整个命令的引号。谢谢大家。您帮了很多忙@Jonathan Leffler提供的bash脚本正在工作。非常感谢:)谢谢大家。@Jonathan Leffler提供的bash脚本正在运行。非常感谢:)谢谢大家。@Jonathan Leffler提供的bash脚本正在运行。非常感谢:)谢谢大家。@Jonathan Leffler提供的bash脚本正在运行。非常感谢:)