Ubuntu下执行sh脚本报错Syntax error unexpected
现象 在 centos 下可以运行的脚本,拷贝到 ubuntu 下直接执行报错: 1./xxx.sh: 5: ./xxx.sh: Syntax error: "(" unexpected 检查脚本没有问题,使用命令调试执行脚本时也没有问题: 1bash -x xxx.sh 排查 使用调试执行没有问题,就证明脚本本身没有问题,那就是环境可能有问题。 也就是说,直接执行脚本时,不是使用 bash 执行的。 经查,在 ubuntu 上,sh 是 /bin/dash 的软链接,好吧,直接执行脚本是 dash 原因 其他常见的 linux 发行版,虽然很多是将 sh 指向 bash,但是在 debian/ubuntu 上 sh 命令默认是指向 dash,而不是 bash 又因为 dash 是比 bash 还轻量的,只支持基本的 shell 功能,其中不包括刚才那种数组初始化,所以才会识别不了,直接报 Syntax error 解决方案 解决方案很简单,给出三种方案 直接使用 bash 执行命令 1bash xxx.sh 为 shell 脚本显式指定解释器为 bash,即 ...
工作笔记——Linux常用指令
指令默认都是在root下执行,故都没加 sudo ,仅列出平时比较常用的,需要更多扩展请自行查找资料 信息查询类 Linux下系统基本信息查询 查看服务器名称 1hostname 查看当前系统的信息 12# 包括系统名、操作系统、内核等hostnamectl Linux查看系统内核与发行版本信息 1234567uname -a# 仅显示内核版本uname -r# Linux version 指的是内核版本,CentOS 的话:el8_1,数字 8 代表是 CentOS 8,Ubuntu 则为后面的 18.04.1,表示是Ubuntu 18.04cat /proc/version 仅查看发行版本信息 12345lsb_release -a# CentOS:一般查看 redhat-release、os-release、lsb-release、system-release# Ubuntu:一般查看 os-release、lsb-releasecat /etc/*-release 查看IP 12345# 安装net-tools后可用ifconfig# 未安装net-toolsip addr s ...
【转载】提问的智慧
网上总是能看到各种各样的奇葩提问,让人感觉真的非常费解,Github上看到了一篇文章专门写提问的智慧,感觉很不错,分享一下,以下是正文。 提问的智慧 How To Ask Questions The Smart Way Copyright © 2001,2006,2014 Eric S. Raymond, Rick Moen 本指南英文版版权为 Eric S. Raymond, Rick Moen 所有。 原文网址:http://www.catb.org/~esr/faqs/smart-questions.html Copyleft 2001 by D.H.Grand(nOBODY/Ginux), 2010 by Gasolin, 2015 by Ryan Wu 本中文指南是基于原文 3.10 版以及 2010 年由 Gasolin 所翻译版本的最新翻译; 协助指出翻译问题,请发 issue,或直接发 pull request 给我。 本文另有繁體中文版。 原文版本历史 目录 提问的智慧 原文版本历史 目录 声明 简介 在提问之前 当你提问时 慎选提问的论坛 Stack Ov ...
红灯遐想
每天早上拖着疲惫的身体醒来,一想到要上班就浑身不自在。每天的按部就班,人生主线任务就是上班,其他所有的一切诸如结婚生子的大事,感冒发烧的小事都是在工作的夹缝中完成的,想想也觉得好笑的,但是怎么办呢? 距离公司有40公里的路程,每天七点四十左右开始出发,路上是有好几个红灯的,每次一个人上班的时候就喜欢等红灯,因为留给我了一些时间去放空,我很珍惜这短短几十秒,不用去想任何事情,盯着红灯等绿灯。红灯亮起的时候,好像我的人生可以无所事事了,对路边的花花草草也有了欣赏的兴致,一颗贫瘠的灵魂,稍微沾上了一点诗意。 说距离产生美,这话可能不适用在通勤距离上。下班的时候也是有很多红灯的,然而这时候的心思是和上班路上截然不同的,只是希望红灯可以短一点,让我早些回家,这时候的等待,是一种痛苦的欢愉。年龄不断的增长之后,才发觉家是港湾这句话的意义,可我经常要加班。 我是极其不爱加班的,也没法理解老板说的尽量加班,如果说非要找个理由的话,我想要回家吃饭,民以食为天,这算是有要事吧。但是哪怕不加班,一个小时的路程到家也七点多了,想想真的有蛮久工作日下班没有一大家子围在一起吃饭了。好像真的比较难平 ...
2021华语辩坛老友赛决赛--熬夜是现代人的病/药
人为什么要喝酒? 因为不喝酒的时候不快乐 你说我为什么要熬夜 因为我的生活是空虚的 那我问你,你为什么不在白天去填补你的空虚,而非要熬夜来填补你的空虚呢? 很简单 因为白天的世界是不属于你的 我为了要让自己的生活有意义 所以我不得不晚上减少我的睡眠时间,来获得我生活的意义 如果大家真的被内卷的世界所侵蚀过 经历过晚上的熬夜 你会发现那个熬夜是非常痛苦的 我为什么喜欢刷抖音 因为我除了刷大拇指这个动作之外 我没有任何一块肌肉可以用力了 可我为什么还是不愿意睡觉呢? 因为我知道我现在睡了 明天的世界又是别人的了 我又得去拼搏了
低速信号常见BUG分析
开篇 起因是一个背板的 I2C BUG,在测试主板到背板上的 I2C 时,出现在 ACK 位置下冲现象,与 TJ 同事沟通后才发现其实是Glitch(毛刺),不愧是老法师啊~ 进而引申出此篇低速信号常见BUG的分析,花了几个小时到处搜索资料,结合自己一些分析理解,记录一下学习的过程 先解释下一些名词: Glitch(毛刺):在原本预期的连续或稳定的信号中出现的短暂而异常的电压或电流波动,表现为瞬态尖峰或窄脉冲。 Overshoot(过冲;正脉冲信号):过,就是超过,越过了预定电平门限[1]。 Undershoot(下冲;负脉冲信号):下,就是不及,没有到达预定的电平门限。 Ringing(振铃):反复的过冲与下冲,就形成了振铃 信号的毛刺 毛刺产生的原因——通常是由于电路设计、制造缺陷、噪声耦合、信号切换速度过快或其他复杂的电气交互作用所引起。 信号毛刺的产生原理[2] 毛刺是一种形象的说法,它的产生归因于组合逻辑的竞争与冒险。 竞争[3] 竞争:在组合逻辑中,信号经由不同的路径达到某一会合点的时间有先有后,这种现象称为竞争。 有两种情况会产生竞争:门电路两个输入信号同时 ...
Linux系统安装驱动时报错--Kernel相关
问题背景 在安装网卡、GPU 驱动时出现Kernel相关的报错,具体表现如下 安装 WX1860 芯片网卡驱动时,使用 make 命令出现报错 1234[root@localhost ~]# makecommon.mk:98: *** Kernel header files not in any of the expected locations.common.mk:99: *** Install the appropriate kernel development package, e.g.common.mk:100: *** kernel-devel, for building kernel modules and try again. Stop. 安装 NVIDIA GPU 驱动时出现如下报错 问题分析[1] 报错的意思就是内核和内核头文件版本不一致,找不到当前内核源的内核代码树 我们可以先查看当前的系统内核信息,获取到当前内核版本为:4.19.113.40.nfs4.x8_64 1uname -r 查看本地yum库中所有Kernel信息 1yum list |grep ke ...
青龙面板搭建教程
开篇 忘记了是哪一年的哪一天,人总有那么几天是心里很痒痒的,本来我只是打算翻出来色色的学习的,结果无意之间看到一些非常有趣的东西,不得不说 GitHub 真是个好东西啊 青龙面板 正题就是青龙面板[1]。青龙是 whyour 大佬写的一个定时任务管理平台,支持 Python3、JavaScript、Shell、Typescript,简单来说就是可以定时运行一些脚本,就比如说薅羊毛、签到、抢购等等,谁会跟羊毛过意不去呢? 青龙面板涵盖以下功能 支持多种脚本语言(python3、JavaScript、shell、typescript) 支持在线管理脚本、环境变量、配置文件 支持在线查看任务日志 支持秒级任务设置 支持系统级通知 支持暗黑模式 支持手机端操作 搭建部署 推荐使用Docker进行部署,NAS或者面板(如宝塔、1Panel等)可以直接在镜像仓库搜索进行部署,如果是云服务器等先下载安装docker,再进行青龙的部署,从大佬的README中可以看到相关部署的教程,我这里搬运下 latest 镜像是基于 alpine 构建,debian 镜像是基于 de ...
青龙脚本之如何获取JD COOKIE
Cookie Cookie 代表曲奇,饼干的意思。意思就是一些网站的数据信息,当我们打开 JD 时,第一次需要进行登录,过了几天再打开 JD 时,发现直接就进去了,我们的账号不需要再次登录了,这是因为浏览器保存了网站的 Cookie 信息。 如何获取Cookie 以 JD 为例,我们要获取 Cookie 首先登录京东移动版 m.jd.com 推荐使用手机验证码的方式登录,Cookie 有效期较长,一般为30天 登录完成后点击右下角我的,再按键盘上 F12 打开开发者模式,一定要登录上之后再按 F12 不然过不了滑块验证。 F12 后如图所示,点击 Network(网络) ,之后选择 All 或者 Doc 都行,我这边每次都在 Doc 抓,只有一项,比较方便,不用在所有的包里找了,在 Headers(请求头)里面找到 Cookie(饼干),字段很长,全部复制即可 实际上,我们需要的只是 pt_key 和 pt_pin ,所以还有另一种方法可以获取 点击 Application ,在左侧找到Cookies,这里面包含刚刚复制的所有内容,找到 Name 为 pt_key 和 pt_p ...
电信电视盒子中兴B860AV2.1-T 刷固件变当贝盒子
周末在家没事干,打扫卫生的时候发现了之前在昆山的时候办宽带送的机顶盒,食之无味弃之可惜啊,想着不然刷个当贝玩玩把。网上很多类似的教程,资料相对来说比较方便,直接进入正题把! 正题 拆机短接 第一步先拆机,取出PCB板 主板全貌,一塌糊涂,各种减配,用料很一般 短接C9A8即可识别线刷,先拔掉盒子所有连接线,插上USB(此时盒子指示灯不亮),再短接C9A8,再插电源(指示灯亮),插上电源按开机几秒后电脑识别,松开短接,刷机。 刷固件 线刷工具链接放在文后了 电脑上安装好刷机工具Amlogic USB Burning Tool 软件 →打开软件 →文件 →导入烧录包 →把【擦除flash】和【擦除bootloader】两项勾选先默认去掉 等待刷完即可 刷完重启,成功后插个 HDMI 可以进桌面了 设置密码为10000 还有绿联私有云APP,正好下载登录了哈哈哈 忙活半天,我这10年的老电视不支持4K,尼玛 工具以及固件下载链接 USB_Burning_Tool 中兴B860AV2.1-T固件 遇到的问题 线刷的时候卡在1%,我这边是因为固件版本不对,后来更换 了版本之 ...