您好我想知道如何添加常规标签
我想将结果存储在执行ls -lis。
的变量中AUX=`ls -lis $i`
RESULT+="$AUX"
I have a loop for all the files. And when I do
echo $RESULT:
所有信息都在一行中,我希望每个文件都有一个EOF:
我试过这个,但它不起作用:
RESULT+="$AUX"
RESULT+=`echo -ne '\t'`
感谢您的时间
答案 0 :(得分:1)
打印 Tab 字符与printf '\t'
一样简单(可移植)。例如:
$ printf 'a\tb\n'
a b
但是,您要查看how to loop through files reliably和why not to use ls
for this。
答案 1 :(得分:1)
您必须使用双引号 enquote 您的参数(对于变量定义和命令):
AUX="`ls -lis $i`"
RESULT+="$AUX"
# ... loop $i..
echo "$RESULT"
这样做,换行符也将存储在变量中。
您甚至可以添加额外的换行符:
AUX="`ls -lis $i`"
RESULT+="$AUX"$'\n\n'
# ... loop $i..
echo "$RESULT"
RESULT=
for i in /usr /var;do
AUX="$(ls -lis $i)"
RESULT+="$AUX"$'\n\n'
done
sort -nk7 <<<"$RESULT"
可以渲染像
total 244
total 96
13 0 lrwxrwxrwx 1 root root 4 jun 11 2013 run -> /run
12 0 lrwxrwxrwx 1 root root 9 jun 11 2013 lock -> /run/lock
131073 4 drwxr-xr-x 19 root root 4096 déc 15 11:28 cache
14 4 drwxr-xr-x 2 root root 4096 déc 15 11:29 www
2 4 drwxrwsr-x 12 root staff 4096 jun 11 2013 local
262145 4 drwxr-xr-x 2 root root 4096 nov 22 19:22 state
393217 4 drwxr-xr-x 3 root root 4096 aoû 1 2014 games
393305 4 drwxrwsr-x 2 root staff 4096 déc 14 2012 local
393306 4 drwxr-xr-x 22 root root 4096 mar 26 07:35 log
393330 4 drwxrwsr-x 2 root mail 4096 jun 11 2013 mail
393331 4 drwxr-xr-x 2 root root 4096 mai 5 2013 opt
393332 4 drwxr-xr-x 9 root root 4096 oct 13 2013 spool
524289 4 drwxr-xr-x 2 root root 4096 mar 25 07:35 backups
524290 4 drwxr-xr-x 79 root root 4096 fév 12 22:52 lib
663002 4 drwxr-xr-x 7 root root 4096 jan 6 2014 src
11 16 drwx------ 2 root root 16384 jun 11 2013 lost+found
11 16 drwx------ 2 root root 16384 jun 11 2013 lost+found
526043 16 drwxr-xr-x 2 root root 16384 fév 22 23:09 sbin
526287 16 drwxr-xr-x 439 root root 16384 mar 24 13:43 share
655361 20 drwxr-xr-x 68 root root 20480 fév 22 23:09 include
131155 36 drwxrwxrwt 3 root root 36864 mar 26 13:52 tmp
131073 60 drwxr-xr-x 248 root root 57344 mar 24 07:42 lib
524289 92 drwxr-xr-x 2 root root 90112 mar 24 13:43 bin