簡體   English   中英

基本的bash編程

[英]Basic bash programming

如何在bash中編寫函數以執行以下任務:

  • 計算名為myDir的目錄中.pdf文件的數量。

  • 打印出名為data.txt的文件的第n行,其中n是存儲整數的變量。

  • 運行腳本userinput.o,該腳本需要來自STDIN的數據。 但是,您必須從文件input.txt提供數據,而不是從終端提供數據。

  • 比較兩個文件foo1.txt和foo2.txt的內容。 如果文件匹配,則打印“文件相似”。 如果不是,則打印“文件不同”。 禁止所有其他輸出。

  • 使用gcc編譯器編譯Windows8.c文件,並將STDERR和STDOUT都重定向到文件compile.out。

這是我的代碼:

function part_a 
{               


    return                      
}                               

function part_b
{              

    return                     
}                              

function part_c
{
    "input.txt">>"userinput.o"
    return
}

function part_d
{
    diff foo1.txt foo2.txt
    if (( $? != 0 ))
    then
        echo " Files are different. "
    else
        echo " Files are similar. " 
        return
}

function part_e
{
    gcc "windows8.c" -o quick_sim
    make &> compile.out
    return
}

# To test your function, you can call it below like this:

part_c
part_d

謝謝 :)

計算名為myDir的目錄中.pdf文件的數量。

val=`find myDir -type f -name '*.pdf'|wc -l`

計數將保存在val文件中。

打印出名為data.txt的文件的第n行,其中n是存儲整數的變量。

awk -v line_no=$lineno 'NR==line_no' data.txt

其中lineno是您的變量

運行腳本userinput.o,該腳本需要來自STDIN的數據。 但是,您必須從文件input.txt提供數據,而不是從終端提供數據。

userinput.o < input.txt

比較兩個文件foo1.txt和foo2.txt的內容。 如果文件匹配,則打印“文件相似”。 如果不是,則打印“文件不同”。 禁止所有其他輸出。

diff -q foo1.txt foo2.txt >/dev/null && echo Files are similar || echo Files are differet

使用gcc編譯器編譯Windows8.c文件,並將STDERR和STDOUT都重定向到文件compile.out。

gcc windows8.c 2&1> compile.out

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM