Linux下快速判断当前终端使用的是bash or csh

ops/2024/9/20 9:18:37/ 标签: linux, bash, 运维

在Linux下设置环境变量的时候,可能你也遇到过export: Command not found一类的错误。这是因为当前终端使用的不是bash,如何快速判断当前终端使用的是哪种类型的shell呢?

echo $0判断shell类型

最简单的方法就是在终端输入echo $0,根据回显结果来判断。
注意:是$0 (数字0, 不是字母o)
如果输出的内容带有bash,则表示你使用的是bash;
如果输出的内容带有csh,则表示你使用的是csh。

看下面的例子:
默认使用的是bash,输入echo $0看回显结果
在这里插入图片描述
现在输入csh切换到cshell环境,再输入echo $0查看回显
在这里插入图片描述

cshell环境下,使用setenv命令设置环境变量;‌bash中则使用export命令‌。
再尝试切换到tcsh,输入echo $0查看回显
在这里插入图片描述
tcsh也是csh的一种,所以也可以使用setenv命令。

bashcsh_19">bash和csh的差异

bash和csh的差异主要体现在以下几个方面:‌

1‌.语法结构‌:‌csh的语法类似于C语言,‌支持类似于C语言的控制结构和变量引用;‌而bash的语法更接近于传统的Bourne shell,‌更加灵活且易于理解‌。
‌2.变量设置‌:‌csh设置变量时使用set命令,‌如set a=100,=两边有无空格都可;‌bash设置变量时不需要set命令直接a=100即可,‌且=号两边必须无空格‌。
‌3.环境变量设置‌:‌csh使用setenv命令设置环境变量;‌bash则使用export命令‌。
‌4.脚本兼容性‌:‌由于语法和功能的差异,‌csh和bash的脚本不一定完全兼容,‌迁移脚本时可能需要进行修改和调整‌。
5.条件语句:csh使用if / endif来写条件语句,而bash中使用if /then /fi。


http://www.ppmy.cn/ops/105952.html

相关文章

Java | Leetcode Java题解之第386题字典序排数

题目&#xff1a; 题解&#xff1a; class Solution {public List<Integer> lexicalOrder(int n) {List<Integer> ret new ArrayList<Integer>();int number 1;for (int i 0; i < n; i) {ret.add(number);if (number * 10 < n) {number * 10;} els…

IP/TCP/UDP协议的关键知识点

导语&#xff1a;网络协议是理解网络情况的基础&#xff0c;当遇到网络问题时&#xff0c;首先可以从网络协议入手&#xff0c;熟悉的网络协议可以有效帮助小伙伴们排查或者说定位大概的问题方面。本文整理了目前最常用的网络通信协议&#xff0c;相信对小伙伴们肯定都有帮助。…

单列表集合顶层接口Collection

List&#xff1a;添加元素是有序&#xff0c;可重复&#xff0c;有索引 Set&#xff1a;添加元素是无序&#xff0c;不重复&#xff0c;无索引 Collection是单列集合的祖宗接口&#xff0c;它的功能是全部单列集合都可以继承使用。 1.添加元素 细节1:如果我们要往List系列集…

[项目][CMP][定长内存池]详细讲解

目录 0.铺垫1.理解2.实现 0.铺垫 作为程序员(C/C)我们知道申请内存使用的是malloc&#xff0c;malloc其实就是一个通用的大众货&#xff0c;什么场景下都可以用&#xff0c;但是什么场景下都可以用就意味着什么场景下都不会有很高的性能下面就先设计 一个定长内存池做个开胃菜…

axios返回的是promise对象如何处理?

axios返回的是promise对象如何处理&#xff1f; Axios返回的是Promise对象&#xff0c;这意味着可以使用Promise的.then()、.catch()和.finally()方法来处理异步操作的结果。 以下是处理Axios返回Promise对象的几种常见方式&#xff1a; 1、使用.then()处理响应数据&#xf…

Docker镜像中的源替换为国内源

Docker镜像中的源替换为国内源 介绍示例 介绍 使用Dockerfile构建Containers&#xff0c;通常国内网络更新安装包会有网络问题。本文以python:3.11.7-slim-bookworm镜像为例&#xff0c;实现替换镜像源。 示例 要将基于 python:3.11.7-slim-bookworm 的 Docker 镜像的源替换…

Java IO异常处理:在Web爬虫开发中的实践

在当今的互联网时代&#xff0c;Web爬虫技术已经成为数据采集的重要手段之一。它们能够自动地从网页中提取信息&#xff0c;为数据分析、搜索引擎优化、内容聚合等提供了强大的支持。然而&#xff0c;Web爬虫在执行过程中可能会遇到各种输入/输出&#xff08;IO&#xff09;异常…

假期学习-- iOS runtime的简单了解

iOS RunTime RunTime介绍 RunTime简称运行时&#xff0c;顾名思义&#xff0c;就是oc在运行时侯的一些机制&#xff0c;比如最主要的消息机制 &#xff1b; 对于oc语言来说&#xff0c;它所调用的方法会在运行时才会决定&#xff0c;这就取决于RunTime的消息发送和消息转发机…

集团企业主数据管理项目实施步骤及要点

为打破数据孤岛&#xff0c;提升数据治理水平&#xff0c;某省级投资集团率先构建了主数据平台&#xff0c;并成功实现了财务系统、合同系统、人力资源系统及OA门户系统等多系统的无缝对接。通过主数据平台提供的标准化接口&#xff0c;这些关键业务系统能够高效获取所需的主数…

【知识点】图论续篇 - 最短路算法合集

我不会跟大家说我两个月前就写好了&#xff0c;只是今天才发出来。 本文概述 最短路算法&#xff0c;见名知意&#xff0c;就是用于求出图中从某个顶点到另一个顶点最短距离的算法。最短路算法的应用极其广泛。本文将会以求解最短路为中心&#xff0c;围绕着展开叙述一些常见的…

将AI与情境定位结合以确保品牌安全

你可能会看到一些广告&#xff0c;感觉它们跟你在线阅读或观看的内容有奇怪的关联。这就是上下文广告在起作用。这种基于广告的解决方案在不断变化的数字环境中逐步发展&#xff0c;已经成为每个广告主的必备工具。不过&#xff0c;这种广告不只是把广告和上下文进行匹配这么简…

学习大数据DAY51 Docker 的介绍与使用

目录 01 Docker 介绍 在安装部署程序服务过程种存在的问题 docker 容器技术和 vmware 的比较 什么是虚拟化技术 docker 的本质 docker 容器技术的发展 docker 容器技术的优势 02 docker 组件 docker 核心组件 docker 扩展组件 03 docker 的使用 docker 安装 Docker…

什么是反应诱导重构

反应诱导重构&#xff08;Reaction-Induced Phase Transformation&#xff0c;RIPT&#xff09;是一种材料科学中的现象&#xff0c;指的是在特定的反应过程中&#xff0c;材料的晶体结构或相发生了重构或转变。这种现象广泛应用于催化、材料合成和功能材料的研究中。下面是对反…

Redis过期键监听

在 Redis 中&#xff0c;为了监听过期键事件&#xff0c;需要使用 Redis 的 Keyspace Notifications 功能。这一功能允许客户端订阅某些事件的发生&#xff0c;比如键过期、键删除等。 启用过期键监听 在 Redis 的配置文件 redis.conf 中&#xff0c;确保配置项 notify-keysp…

Django学习(一)

一、创建django项目 二、修改settings.py里的配置&#xff1a; 1、修改语言和时区&#xff1a; # 语言编码 LANGUAGE_CODE zh-hansTIME_ZONE UTCUSE_I18N True# 不用时区 USE_TZ False 2、配置数据库&#xff1a; DATABASES {default: {ENGINE: django.db.backends.m…

奇偶校验、crc循环冗余检验

数据链路层 链路 从一个结点到相邻结点的一段物理线路&#xff0c;而中间没有任何其他的交换点 数据链路 是指把实现通信协议的硬件和软件加到链路上 帧 在数据链路上传输的数据包&#xff0c;称之为帧 数据链路层是以帧为单位进行传输和处理数据的 数据链路层的三个重…

高分辨率音频和传统音频区别

是不是很好奇高分辨率音频和传统音频区别在那里&#xff1f;什么场景更需要高分辨率音频&#xff1f;下面我们一起来理解一下。 高分辨率音频和传统音频主要区别在于其音质和数据的详细程度&#xff1a; 分辨率&#xff1a;高分辨率音频的采样率和比特深度高于传统音频。例如…

mysql 使用 general 开启SQL跟踪功能

查看当前状态 mysql> SHOW VARIABLES LIKE %general%; 启用 临时启用 SET GLOBAL general_logon; SET GLOBAL general_log_file/tmp/general.log; 永久启用 通过修改配置文件来启用,需要重启mysql服务 [mysqld] general_logON general_log_file/tmp/general.log 再次查看状态…

前端实现“点击按钮触发复制文本”功能

目录 【1】实现复制文本功能【部分浏览器不支持】现场环境浏览器 “复制失败” 报错 【2】兼容 【1】实现复制文本功能【部分浏览器不支持】 以下代码实现文本赋值功能我本地浏览器成功了&#xff0c;但是现场环境浏览器 “复制失败”&#xff0c; 我本地浏览器版本&#xff1a…

740 删除并获得点数

给你一个整数数组 nums &#xff0c;你可以对它进行一些操作。 每次操作中&#xff0c;选择任意一个 nums[i] &#xff0c;删除它并获得 nums[i] 的点数。之后&#xff0c;你必须删除 所有 等于 nums[i] - 1 和 nums[i] 1 的元素。 开始你拥有 0 个点数。返回你能通过这些操…