Linux
列印文件大小小於 100 字節的文件
該腳本應該列印出文件大小和目錄中小於 100 字節的所有文件的名稱。我編寫的這個腳本在我的 Ubuntu 上完美執行,但在我的 Mac OS Lion 上無法執行。誰能告訴我為什麼?
#!/bin/bash for i in $(ls) do if [[ $(wc -c $i | cut -d" " -f1) -le 100 ]]; then echo $(wc -c $i) fi done
哇。看起來你讓這變得比它必須的更困難:
find . -size -100c -exec stat -c "%s : %n" {} \;
完畢。
請參閱這篇文章:嵌套 bash if/and/or statement not working going from OS X to Ubuntu
Ubuntu 使用
dash
,我不確定你是在使用bash
還是在 OSX 上使用什麼。將其放在頂部以確保您在兩個系統上使用相同的 shell:#! /usr/bin/env bash
-或者-
#!/bin/bash
您還可以
echo $SHELL
從命令行查看您正在使用的 shell。使用bash
腳本,您可以通過在頂部添加以下行來打開調試:set -x
例如
% ls -l total 4 -rw-rw-r-- 1 saml saml 0 Jan 30 20:30 a1 -rw-rw-r-- 1 saml saml 0 Jan 30 20:30 a2 -rwxrwxr-x 1 saml saml 151 Jan 30 20:45 a.bash % ./a.bash 0 a1 0 a2
啟用 set -x
% ./a.bash ++ ls + for i in '$(ls)' ++ wc -c a1 ++ cut '-d ' -f1 + [[ 0 -le 100 ]] ++ wc -c a1 + echo 0 a1 0 a1 + for i in '$(ls)' ++ wc -c a2 ++ cut '-d ' -f1 + [[ 0 -le 100 ]] ++ wc -c a2 + echo 0 a2 0 a2 + for i in '$(ls)' ++ wc -c a.bash ++ cut '-d ' -f1 + [[ 123 -le 100 ]]
資源