首页 > 系统相关 >shell与会话

shell与会话

时间:2024-10-21 19:43:55浏览次数:7  
标签:脚本 Shell cd 命令 与会 shell 交互式 目录

当您在命令行中运行一个脚本(如 `./gotobin`)时,该脚本会在一个新的子 Shell 中执行。这意味着脚本中的所有命令(包括 `cd` 命令)都仅在这个子 Shell 的上下文中运行。一旦脚本执行完毕,子 Shell 就会关闭,并且您会返回到原始的交互式 Shell 会话中,该会话的工作目录保持不变。

这是因为 `cd` 是一个内建 Shell 命令,它仅改变当前 Shell 会话的工作目录。由于脚本运行在一个子 Shell 中,所以 `cd` 命令仅改变了子 Shell 的工作目录,对父 Shell(即您交互的 Shell)没有任何影响。

如果您希望在脚本执行后改变交互式 Shell 的工作目录,您有几个选项:

1. **手动运行 `cd` 命令**:
在脚本执行完毕后,手动在交互式 Shell 中运行 `cd` 命令来改变工作目录。

2. **使用 `source` 或 `.` 命令**:
使用 `source ./gotobin` 或 `. ./gotobin` 来运行脚本。这将使脚本在当前 Shell 会话中执行,而不是在新的子 Shell 中。但是,请注意,即使这样,`cd` 命令仍然只会改变脚本执行时的当前目录(即交互式 Shell 的目录),如果脚本中有其他命令或逻辑导致脚本结束后回到了其他目录,那么交互式 Shell 的目录也可能不会如您所愿。

3. **在脚本中输出需要切换的目录**:
让脚本输出需要切换到的目录,然后您手动在交互式 Shell 中运行 `cd` 命令。

4. **使用函数**:
将 `cd` 命令放在一个 Shell 函数中,并在交互式 Shell 中调用该函数。但是,由于函数也是在当前 Shell 会话中执行的,所以您需要确保函数中的逻辑正确,以便在函数执行完毕后保持您期望的工作目录。

5. **重新设计脚本**:
如果脚本的目的是改变工作目录,那么可能需要重新设计脚本的逻辑,以便它能够以某种方式通知或影响交互式 Shell。但是,由于安全性和设计上的限制,通常不建议这样做。

总之,由于 `cd` 命令的特性和 Shell 的工作方式,通常无法通过脚本直接改变交互式 Shell 的工作目录。您需要在脚本执行后手动进行必要的更改。

 

 

source的作用就是将脚本的执行结果应用到当前会话.

标签:脚本,Shell,cd,命令,与会,shell,交互式,目录
From: https://www.cnblogs.com/zxdplay/p/18490131

相关文章

  • Shell 主要的作用是什么
    Shell主要的作用:1.提供与操作系统交互的命令行界面;2.执行和管理系统命令和程序;3.脚本编程和自动化任务;4.环境配置和用户管理;5.管理文件和目录;6.进程控制和任务调度。Shell是用户与操作系统进行交互的主要界面,为用户提供了命令行界面。1.提供与操作系统交互的命令行界面......
  • C10-08-宽字节注入-mysql注入之getshell-sqlmap
    一宽字节注入利用宽字节注入实现“库名-表名”的注入过程。靶场环境:容器镜像:area39/pikachu宽字节概念1、如果一个字符的大小是一个字节的,称为窄字节;2、如果一个字符的大小是两个及以上字节的,称为宽字节;像GB2312、GBK、GB18030、BIG5、Shift_JIS等编码都是常见的宽字节......
  • shell编程小技巧:进程替换
    今天来给大家介绍一个非常好用的shell编程技巧,即进程替换(Processsubstitution)。进程替换可以将一个进程(程序)的输入或输出当做一个文件来使用。它的两种使用形式为:<(cmd)或>(cmd).需要注意的是,<和>与(之间不能有空格!下面通过一个示例来介绍进程替换的具体用法。假如我有一个......
  • 白嫖正版xshell和XFTP
    在哪里可以下载正版免费的xshell和XFTP,并且还能够获得官网免费持久更新白嫖步骤首先直接在浏览器搜索xshell官网点进官网之后直接点击下载接着点击免费授权页面进入之后就可以免费下载了下载安装完成后填写用户名和邮箱并提交,这里就以xshell为例,XFTP同理,这里就不......
  • SHELL
    shell脚本运行4种方法:1.chmoda+xmyshell.sh./myshell.sh2..myshell.sh3.sourcemyshell.sh4./bin/bashmyshell.shshell语法:数据类型:字符串String 变量: 全局变量----环境变量 局部变量----本地变量 变量名=变量值 VAR=10 对比: $变量名......
  • openvpn2.0.9搭建和windows客户端拨号连接vpn,并用xshell连接机房只有内网的服务器
    openvpn2.0.9搭建和windows客户端拨号连接vpn,并用xshell连接机房只有内网的服务器如果对运维课程感兴趣,可以在b站上、csdn或微信视频号上搜索我的账号:运维实战课程,可以关注我,学习更多免费的运维实战技术视频1.openvpnserver服务器的安装、配置和服务启动:vpnserver服务器:(......
  • VSCode + Python + Shell 调试 (Debug) : debugpy
    场境:使用VSCode对一个用Shell脚本启动的Python程序进行Debug.1.debugpy安装在激活了相应的conda虚拟环境后,安装debugpy库:pipinstalldebugpy2.查看可用端口运行forportin{5000..6000};do(echo>/dev/tcp/localhost/$port)>/dev/null2>&1||echo"$portis......
  • shell脚本总结
    生成菜单法1:#!/bin/bash#定义颜色变量RED='\033[1;31m'GREEN='\033[32m'YELLOW='\033[33m'BLUE='\033[34m'NORMAL='\033[0m'PS3=`echo-e"${GREEN}请选择一个选项:${NORMAL}"`options=("选项1""......
  • 从零开始 -- Powershell入门
    学习一门技术,不止要会,还要善用,例子就是带你快速入门的最佳利器。本文就是要用例子,不,大量的例子来带你走进PowerShell应用世界。本文主要介绍一些PowerShell入门的基础知识,对技术小白来说可以快速入门,对技术老鸟来说可以复习巩固,废话不多说,直接进入正题。PowerShell,相信大家早已......
  • 逆向 | shellcode注入模板
    逆向|shellcode注入模板继续写书里的示例代码。#include<stdio.h>#include<windows.h>typedefint(WINAPI*PMESSAGEBOXA)(HWNDhWnd,LPCSTRlpText,LPCSTRlpCaption,UINTuType);typedefFARPROC(WINAPI*PGETPROCADDRESS)(HMODULEhModule,LPCSTRlpProcName);ty......