bash 和 tcsh(csh)的不同,带例子

article/2025/9/21 23:35:55

我使用bash和tcsh(csh)过程中总结出的一些异同,附我的彩色的提示行配置
在这里插入图片描述
效果:
在这里插入图片描述

自做的彩色提示符

bash PS1 命令提示符

##
PS1='\[\033[01;33m\][\D{%y-%m-%d} \t]\[\033[00m\]\[\033[01;32m\][\!]\[\033[00m\]${debian_chroot:+($debian_chroot)}\[\033[01;37m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\n  \[\033[05;35m\]\$ \[\033[00m\]'
PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w\$ '

效果:
在这里插入图片描述
在这里插入图片描述

tcsh (csh) prompt 命令提示符

set prompt="\n%B"##color prompt################
set cblack =  "%{\e[30m%}"
set cred =    "%{\e[31m%}"
set cgreen =  "%{\e[32m%}"
set cyellow = "%{\e[33m%}"
set cblue =   "%{\e[34m%}"
set cpurple = "%{\e[35m%}"
set cyan =    "%{\e[36m%}"
set cwhite =  "%{\e[37m%}"set cfault =           "%{\e[0m%}"
set cbrighter_colors = "%{\e[1m%}"
set cunderline_text =  "%{\e[4m%}"
set cflashing_text =   "%{\e[5m%}"set prompt="\b%B${cyellow}[%y-%W-%D %P] ${cgreen}[%h]%b [$user@`hostname`: ${cyan}%/${cfault}] \n %B${cpurple}${cflashing_text}>> %b"

if语句

bash注意点: 对空格要求特别严格if_[if和括号之间有空格, [_$day_]前括号后和后括号前有空格。
另外,if还可以这样:if [ $days -gt 365 ] ; then ,另外days=365无空格,

tcsh注意点: then不能放在下一句,对空格无要求
在这里插入图片描述
结果:
在这里插入图片描述

操作符 -eq -gt -lt -d -e
在这里插入图片描述
如果if多重条件,bash可用这么用, [ ] 中可以使用 –a –o 进行逻辑运算, -a为逻辑与(and),-o为逻辑或(and)

if [ $day -gt 365 -o $day -gt 366 ]
thenecho "equal to 365 or 366"
fi

if参考:
If Statements - Bash Scripting Tutorial
Bash Conditional Expressions (Bash Reference Manual)
shell中括号的特殊用法 linux if多条件判断 - 浮沉一梦 - 博客园

while语句

在这里插入图片描述
结果:
在这里插入图片描述

for, foreach 语句

在这里插入图片描述
结果:
在这里插入图片描述
参考:Unix: csh Shell Loop Example - nixCraft

case和switch语句

在这里插入图片描述
结果:
在这里插入图片描述
在这里插入图片描述

function 函数

csh注意点csh不支持函数!,但是可以用alias 加上调用脚本的形式,实现类似于函数的功能。
在这里插入图片描述
在这里插入图片描述

csh判断文件夹或文件是否存在

有如下文件结构

./
├── case/  文件夹
│   └── case.txt 文件
└── case.sh 脚本
#脚本case.sh
#判断文件夹是否存在
set folder_name = case
set file_name = case.txt
# 如果存在
if(-d $folder_name) thenecho "folder exist"
elseecho "folder isn't exist"
endif#判断文件是否存在
#如果存在
if(-f "${folder_name}/${file_name}") thenecho "file exist"
elseecho "file isn't exist"
endif#如果不存在
if(! -d $folder_name) thenexit
endif
文件操作格式:-操作符 filename-e 文件存在返回1(.true.), 否则返回0(.false.).
-r 文件可读返回1,否则返回0.
-w ....可写................
-x ....可执行...............
-o 文件属于用户本人返回1, 否则返回0.
-z 文件长度为0返回1, 否则返回0.
-f 文件为普通(plain)文件返回1, 否则返回0.
-d 文件为目录文件时返回1, 否则返回0.

参考:
CShell
shell bash判断文件或文件夹是否存在 - emanlee - 博客园

参考:
If Statements - Bash Scripting Tutorial
Intro to Bash Scripting - ITNEXT
Bash Scripting Tutorial - Ryans Tutorials
shell中括号的特殊用法 linux if多条件判断 - 浮沉一梦 - 博客园
csh大全 – C Shell, a shell (command interpreter) with C-like syntax
sh大全,sh, resh, ksh, bash – POSIX-compliant (Korn/Bourne-Again) shell and command interpreter


http://chatgpt.dhexx.cn/article/JZiInsUn.shtml

相关文章

Bash与Csh的区别

zz :http://dangdanding.blog.163.com/blog/static/27992981201262595221896/ 一、csh的while循环控制结构及if then: #!/bin/csh -f while ($#argv > 1) if ("$1" "-s") then shift if ($#argv > 1) then set source …

CSH脚本学习

CSH脚本学习笔记(不常见的命令用法) csh中的 > ! 命令与bash中的> 和>| 命令相同,都是写入文件内容。但在bash中表示没有文件则不创建文件。 foreach var ( list ) command end 是CSH脚本中的循环命令,将list的值逐一赋值给变量var…

Shell编程之Csh和Bash的经验总结

文章目录 前言1. 变量和环境变量设置1. csh2. bash 2. if语句1. csh2. bash 3. while循环1. csh2. bash 4. 数组1. csh2. bash 5. 获取当前文件路径1. csh2. bash 6. 获取当前时间1. csh2. bash 7. 产生随机数并测试1. csh2. bash 8. 补充1. 查看系统默认用的 Shell2. 查看系统…

矩阵转置基本性质

一个矩阵的转置与本身相乘得到对称矩阵 一个矩阵的逆矩阵与本身相乘得到单位矩阵 行列式不等于零,矩阵可逆,反之不可逆 满秩矩阵一定是可逆的

Maple: 矩阵转置

在Maple中用%T的命令执行矩阵转置,具体效果如下

5*5矩阵转置

编写程序:对一个5X5的二维整型数组转置,即行列互换。 要求从键盘输入数组的值,输出转置前及转置后的结果。 如: 输入格式: 输入数组前有如图示的提示; 输出格式: 输出转置前及转置后的结果,输出前有提示…

矩阵转置输出

输入样例 3 2 1 2 3 4 5 6 #include<stdio.h> int main() {int m,n;int a[15][15]{0};//二维数组int i,j;scanf("%d %d",&m,&n);for(i0;i<m;i)for(j0;j<n;j)scanf("%d",&a[i][j]);//先全部输入再进行其他操作for(i0;i<m;i){for…

c语言函数矩阵转置代码,C语言实现矩阵转置

讲解对象&#xff1a;C语言实现矩阵转置 作者&#xff1a;融水公子 rsgz 1随机函数生成矩阵 #include #include #include int main(){ int i,j; int a[5][3]; printf("生成矩阵:\n"); //srand(time(NULL)); for(i0;i<5;i){ for(j0;j<3;j){ a[i][j]rand()%20; }…

vue报错:Failed to resolve directive: modle

问题原因&#xff1a;我把model写成了modle

[Vue warn]: Failed to resolve directive: modle (found in ComponentA)

报错原因&#xff1a;单词拼写错误 解决方法&#xff1a;检查是否将model写成了modle 温馨提示&#xff1a;编写代码要细心且严谨&#xff08;这已经是我第二次犯类似的错误了&#xff09;

Proteus找不到模型文件 Could not find the modle file

这一部分和你Proteus的文件夹地址一样 这些也要一样 且安装路径需要选择英文路径 同理 最后再用管理员模式打开一下就可以了。。。&#xff08;这些都是弱智问题&#xff09;&#xff08;我是弱智&#xff09;

Vue:解决[Vue warn]: Failed to resolve directive: modle (found in Anonymous)

解决问题 [Vue warn]: Failed to resolve directive: modle (found in <ComponentA>) console.error(("[Vue warn]: " msg trace)); 原因是 我把model 写成了 modle 这类错误一般是单词写错了 (found in <Anonymous>) 解决思路

modle bulinder 实践1.Excel坐标转面

1.结果&#xff1a; 1.工具放在内存里可以加快运行速度 2.步骤 a.Excel转表工具 b.创建XY事件图层&#xff08;选用投影坐标系--高斯克吕格-CGCS2000-34坐标系&#xff09; c.筛选工具<生成的是临时表&#xff1b;点转线需要真实存在的表&#xff1b;故进行筛选&#xf…

vue v-modle修饰符.number .trim

语法糖&#xff1a; 在不影响功能的情况下&#xff0c;添加某种方法实现同样的效果&#xff0c;从而方便程序开发。 .number&#xff1a;可以将输入转换成Number类型&#xff0c;否则虽然输入的是数字&#xff0c;但它的类型其实是String。 .trim&#xff1a;自动过滤输入的首尾…

Android Studio 导入modle是提示名称已存在

最近在做项目的时候&#xff0c;使用到别人的东西&#xff0c;就引入的相应的Modle&#xff0c;引入成功后。第二天打开项目的时候发现前一天引入的Modle不见了&#xff0c;再次引入的时候提示该Modle的名称已经存在&#xff1b;我查理一下资料解决方法如下&#xff1a; 其实Mo…

Action层, Service层 ,modle层 和 Dao层详解

一、SSH架构最基本的分层方式&#xff1a; modle层&#xff1a;就是对应的数据库表的实体类&#xff0c;即将现实对象抽象成类。 Dao层&#xff1a;是使用了Hibernate连接数据库、操作数据库&#xff08;增删改查&#xff09;和model层。 Service层&#xff1a;引用对应的Dao数…

AndroidStudio如何删除Modle

1、 2、 3、编译之后就可以了

【Django】admin的save_modle方法重写-20220803

重写代码&#xff1a;加入if change 和logger def save_model(self, request, obj, form, change):if change:print(self,self)print(request,request)print(obj,obj)print(form,form)print("form.cleaned_data[project_name]",form.cleaned_data[project_name])prin…

有包但import时pycharm提示No Modle name

已经安装了Anaconda。在我重新安装pycharm后&#xff0c;将原来的写的代码导入编写界面&#xff0c;在import处发现有红色波浪线&#xff0c;提示我没有这个包。但是用pip list命令查看发现包已经安装。后来发现是在配置编译器环境的时候路径不是Anaconda文件目录下的&#xff…