簡體   English   中英

使用參數的BASH Shell腳本

[英]BASH shell scripting using parameters

我正在嘗試創建三個BASH腳本來幫助在VM上組織終端和工作區。

以下是我希望參數化的命令。

1)如何重命名終端窗口的標題:

PS1='\[\e]0;TERMINAL NAME\a\]${debian_chroot:+($debian_chroot)}\u@\h:\w\$ '

2)更改工作區數量:

gsettings set org.gnome.desktop.wm.preferences num-workspaces "5"

3)重命名工作區的名稱:

gsettings set org.gnome.desktop.wm.preferences workspace-names "['IntelliJ', 'Cloud Discovery', 'Full Stack', 'Simulators', 'Misc']"

自從我完成BASH腳本以來已經有一段時間了,而我忘記了如何通過BASH腳本運行控制台命令。

我最初的嘗試都失敗了。 這是我最近編寫的代碼:

#!/bin/bash
export cmd="PS1='\[\e]0;$1\a\]${debian_chroot:+($debian_chroot)}\u@\h:\w\$ '"
echo {$cmd}

./setNewTermName MyName

但是當我如上所述運行腳本時,它沒有重命名終端。 但是,當我直接在上面的命令(代替實際名稱)上運行上面的PS1命令時,它可以工作。

關於我在做什么錯的任何想法嗎?

您需要定義一個局部變量,該變量將獲得標題的值作為如下參數。 然后,您將在PS1變量中使用該局部變量(在這種情況下為標題)。

然后,為了運行腳本,你需要“ ”的劇本在當前外殼,使腳本變量對父shell可見。

#!/bin/bash

title=$1;

PS1='\[\e]0;${title}\a\]${debian_chroot:+($debian_chroot)}\u@\h:\w\$ '

因此,不要像這樣運行腳本

./setNewTermName MyName

在不帶/的情況下運行。 注意句點后的空格:

. setNewTermName MyName

或作為:

source setNewTermName MyName

暫無
暫無

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

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