为什么 echo 很特殊

回复列表(52|隐藏机器人聊天)
  • @Ta / 2022-08-22 / /

    @无名啊

    bash test.sh
    test.sh: line 20: syntax error: unexpected end of file
    
  • @Ta / 2022-08-22 / /

    @老虎会游泳,啥版本的 bash 啊这是,不会是 sh 的链接吧

  • @Ta / 2022-08-22 / /

    @无名啊,所有前导制表符都将从输入行和包含分隔符的行中删除,但你发的是空格啊。

  • @Ta / 2022-08-22 / /

    @无名啊,如果用制表符,那确实可以。但是最好不要依赖它,在文本交换过程中很可能会变成空格。

  • @Ta / 2022-08-22 / /

    @老虎会游泳,噢,可能是我为了网页排版舒服(默认 8 个空格宽度),把tab改成 4 个空格了

    (甩锅)快去改改tab宽度

  • @Ta / 2022-08-22 / /

    @无名啊,哈哈,我知道了,你的代码是从终端复制的吧。从终端是不可能复制到制表符的,都会变成空格。

  • @Ta / 2022-08-22 / /

    @老虎会游泳,不是,我直接从编辑器复制粘贴的

    你要是从“回复提醒”里看最初的版本,应该还能看到是tab

  • @Ta / 2022-08-22 / /

    @无名啊,嗯,确实
    image.png(156.09 KB)

  • @Ta / 2022-08-22 / /

    bash源码

    while read -r code; do
    
    	echo $'\n'"<$code>"
    	time php <<-EOF | wc -lc
    		<?php
    		mt_srand(strtotime('2022-08-11 20:00:00'));
    
    		for (\$uid = 1; \$uid <= 100000; ++\$uid)
    			for (\$i = mt_rand(15, 25); \$i > 0; --\$i)
    				$code;
    	EOF
    
    done <<-'EOF'
    	echo $uid . ',' . mt_rand(0, 255) . "\n"
    	echo $uid , ',' , mt_rand(0, 255) , "\n"
    	printf($uid . ',' . mt_rand(0, 255) . "\n")
    	printf("%d,%d\n", $uid, mt_rand(0, 255))
    EOF
    
    while read -r code; do echo $'\n'"<$code>" time php <<-EOF | wc -lc <?php mt_srand(strtotime('2022-08-11 20:00:00')); for (\$uid = 1; \$uid <= 100000; ++\$uid) for (\$i = mt_rand(15, 25); \$i > 0; --\$i) $code; EOF done <<-'EOF' echo $uid . ',' . mt_rand(0, 255) . "\n" echo $uid , ',' , mt_rand(0, 255) , "\n" printf($uid . ',' . mt_rand(0, 255) . "\n") printf("%d,%d\n", $uid, mt_rand(0, 255)) EOF
  • @Ta / 2022-08-22 / /

    @无名啊,修改了tab宽度。

    /*设置tab宽度为4个空格*/
    html, input, textarea, pre, code {
        tab-size: 4;
    }
    
  • @Ta / 2022-08-22 / /

    @老虎会游泳,要不要仅 codetab 宽度改成 4?

    否则为嘛很多地方(网页、记事本)默认都是 8 呢?

  • @Ta / 2022-08-22 / /

    @无名啊,网页中可能不存在该问题。不是代码的地方,根据HTML空格规则,任何空白字符都相当于一个空格。此外,编辑和浏览时如果tab宽度不同,也不令人满意。

  • @Ta / 2022-08-22 / /
    @卷心菜 基佬牌手机每天艳遇不断,激情不断。基佬至尊纪念版
添加新回复
回复需要登录