进入Gentoo并执行像equery这样的gentoo命令

时间:2016-12-06 20:12:43

标签: linux shell gentoo

我编写了一个shell脚本来输入gentoo前缀并运行命令。 但是一旦它进入Gentoo前缀,它就会停止并且不会执行其余的步骤。根据我的说法,控制台已从RHEL更改为GENTOO,这阻止了shell脚本执行其余命令。 有没有办法没有输入GENTOO前缀我可以在shell脚本中执行gentoo特定命令?

使用的命令:

Gentoo_prefix
equery list > file.csv

脚本:

cat file | awk '{print $3}'| cut -d '/' -f3 | cut -d '_' -f1 | sort -u | uniq -u | sed 's/.$//' > files
read -n 2 Detail
files=`echo $Detail | tr '[:upper:]' '[:lower:]'`
read server
Server=`echo $server | tr '[:upper:]' '[:lower:]'`
for nat in $(cat files)
do
    for serv in $Server
    do
        if [ $files == $nat -a $Server == $serv ]
        then
            ls /tmp/$nat'0_'$serv/ | grep -i python > module
            read module_name
            ls /tmp/$nat'0_'$serv/$module_name/ | grep ^3 > version
            $version_name = ' '
            read version_name
            for name in $(cat version)
            do
                if [ $version_name == ' ' ]
                    for pack in $(cat module)
                    do
                        if [ $version_name == $pack ]
                        then
                            $version_name
                            equery list > components.csv

1 个答案:

答案 0 :(得分:1)

为了向脚本中的命令提供输入,您必须通过管道输入或使用here-doc,而不是像输入交互式命令一样将输入放在命令之后。

                    if [ $version_name == $pack ]
                    then
                        echo 'equery list > components.csv' | $version_name

                    if [ $version_name == $pack ]
                    then
                        $version_name <<EOF
equery list > components.csv
EOF