簡體   English   中英

在終端或UNIX中的不同命令上動態執行輸出

[英]Executing output dynamically on different commands in terminal or in unix

我在某個路徑下有一個名為1到1000的子文件夾,可以說/ path / to / mydir。 因此,我想創建自定義別名,以便采用某種方法,這樣當我輸入105時,它將帶我到/ path / to / mydir / 105。 在屏幕后面,我需要執行cd /path/to/mydir/105命令。

為此,我需要對.bashrc做哪些更改?

有人可以幫我嗎?

我認為,如果您不使用別名,則只需編寫一個簡單的腳本即可

#!/bin/bash
cd /path/to/yourdir/${1}

並用go命名並放入$PATH我建議您將其放入/usr/local/bin/路徑中,因為這是用戶應具有寫特權並放入其可執行二進制文件/腳本的路徑。

所以你可以

$go 105

將目錄更改為所需的目錄。

編輯

實際上,根據tldp ,您也可以使用別名來執行此操作

#!/bin/bash

shopt -s expand_aliases
alias go='cd  /path/to/your/dir/${1}'

並與此

source ./testalias.sh
go 1234

但你仍然需要鍵入命令go為這個

for ((i=1;i<=1000;i+=1)); do alias "$i=cd \"/path/to/mydir/$i\""; done

編輯以下關於其他anwser的評論, find不需要檢索第一級目錄:使用glob擴展

for d in /path/to/mydir/*/; do
    dn=${d%/}                      # remove trailing /
    alias "${dn##*/}=cd \"$d\""    # remove path prefix from directory for alias name
done

使用find和awk解析輸出,構造一個別名命令,該命令可以存儲在文件srcfile中

find /path/to/mydir -type d | awk -F\/ '{ print "alias "$NF"=\"cd \\\""$0"\\\"\"" }' > srcfile

然后在bash.rc文件中:

source srcfile

這會將別名加載到您的bash shell中。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM