shell和bash脚本命令学习

概念

Shell指的是任何提供命令行界面的程序,它提供了用户与操作系统之间的交互界面。它允许用户输入命令并执行它们,同时提供脚本编写功能,使得自动化任务成为可能。Shell有多种类型,比如Bourne Shell(sh)、C Shell(csh)、Korn Shell(ksh)等。

Bash是Shell的一种,全称为Bourne Again Shell,是Bourne Shell的一个自由软件版本。

 

学习资料

 

在Bash脚本中, $(dirname $0) 是一个表达式,用于获取当前脚本文件所在的目录路径。

  • $0 是一个特殊的变量,它代表当前脚本的文件名,包括其路径。
  • dirname 是一个Unix命令,用于从完整的文件路径中去除文件名,只留下目录部分。

例如,如果你有一个脚本文件位于 /home/user/myscript.sh,那么执行 $(dirname $0) 将得到 /home/user

这个表达式在脚本中经常用于确定脚本的安装位置,以便脚本可以找到其依赖的文件或执行其他需要知道脚本位置的操作。

 

bash脚本示例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#!/usr/bin/env bash
 
CONFIG=$1
GPUS=$2
NNODES=${NNODES:-1}
NODE_RANK=${NODE_RANK:-0}
PORT=${PORT:-29500}
MASTER_ADDR=${MASTER_ADDR:-"127.0.0.1"}
 
# export TORCH_DISTRIBUTED_DEBUG=INFO
# export CUDA_VISIBLE_DEVICES=0
 
PYTHONPATH="$(dirname $0)/..":$PYTHONPATH \
python -m torch.distributed.launch \
    --nnodes=$NNODES \
    --node_rank=$NODE_RANK \
    --master_addr=$MASTER_ADDR \
    --nproc_per_node=$GPUS \
    --master_port=$PORT \
    $(dirname "$0")/train.py \
    $CONFIG \
    --launcher pytorch ${@:3}

  

 

posted @   Picassooo  阅读(50)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
历史上的今天:
2023-06-11 python @property @classmethod
2020-06-11 Lipschitz连续
2020-06-11 Linux服务器常用命令(二):CPU核数、逻辑CPU
点击右上角即可分享
微信分享提示