我剛剛進入shell腳本並在過去2個月中學習它。我需要你幫助調整或提供任何其他解決方案,無論是在sed或AWK下面的問題。在shell腳本中需要幫助
「編寫一個腳本來輸入文件名並以每行只有10個字符的方式顯示文件內容。如果文件中的行超過10個字符,則在下一行顯示該行的其餘部分。
我寫了下面的腳本,工作正常。但是花了2個小時才寫出來......(肯定不能接受)問題是我知道shell命令非常好,但仍然沒有掌握將它們放到shell腳本中的技巧:-(。謝謝。
#!/bin/bash
if [ $# -ne 1 ]; then
echo "USAGE: $0 $1"
exit 99;
fi
VAR1=$(echo "$1" | wc -c)
cat "$1" | while read line
do
[ $VAR1 -gt 10 ] && echo "$line" || echo "$line"|tr " " "\n"
done
令人高興的是,要報告的使用最優化的方式。然而,由於沒有'$ 1',用戶不會知道他們應該輸入什麼。看起來回聲應該是:'echo'用法:$ 0 filename「>&2',其中'Usage'通常以混合大小寫拼寫,並且錯誤消息的輸出應該是標準錯誤而不是標準輸出。 –
我有點困惑。 '$ VAR1'中的值是文件名中的字符數。循環體中的代碼是不可思議的(使用常規的'if/then/else';如果你想寫一行,就去學習APL)。如果文件名超過10個字符,則不改變該行;否則,你會用換行符代替空白。我不確定它是否符合規格要求。 –